Mojolicious::Plugin::JSONConfig - JSON configuration plugin
# myapp.json { "foo" : "bar", "music_dir" : "<%= app->home->rel_dir('music') %>" } # Mojolicious my $config = $self->plugin('JSONConfig'); # Mojolicious::Lite my $config = plugin 'JSONConfig'; # Reads "myapp.json" by default my $config = app->config; # Everything can be customized with options my $config = plugin JSONConfig => {file => '/etc/myapp.conf'};
Mojolicious::Plugin::JSONConfig is a JSON configuration plugin that preprocesses it's input with Mojo::Template. The application object can be accessed via $app or the app function. You can extend the normal config file myapp.json with mode specific ones like myapp.$mode.json. The code of this plugin is a good example for learning to build new plugins.
$app
app
myapp.json
mode
myapp.$mode.json
Mojolicious::Plugin::JSONConfig inherits all options from Mojolicious::Plugin::Config and supports the following new ones.
template
# Mojolicious::Lite plugin JSONConfig => {template => {line_start => '.'}};
Attribute values passed to Mojo::Template object used to preprocess configuration files.
Mojolicious::Plugin::JSONConfig inherits all methods from Mojolicious::Plugin::Config and implements the following new ones.
parse
$plugin->parse($content, $file, $conf, $app);
Process content with render and parse it with Mojo::JSON.
render
sub parse { my ($self, $content, $file, $conf, $app) = @_; ... $content = $self->render($content, $file, $conf, $app); ... return $hash; }
register
my $config = $plugin->register($app, $conf);
Register plugin in Mojolicious application.
$plugin->render($content, $file, $conf, $app);
Process configuration file with Mojo::Template.
sub render { my ($self, $content, $file, $conf, $app) = @_; ... return $content; }
Mojolicious, Mojolicious::Guides, http://mojolicio.us.
To install Mojolicious, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Mojolicious
CPAN shell
perl -MCPAN -e shell install Mojolicious
For more information on module installation, please visit the detailed CPAN module installation guide.