NAME
Mojolicious::Plugin::JSONConfig - JSON Configuration Plugin
SYNOPSIS
# 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 and puts the parsed version into the stash
my
$config
=
$self
->stash(
'config'
);
# Everything can be customized with options
my
$config
= plugin
JSONConfig
=> {
file
=>
'/etc/myapp.conf'
,
stash_key
=>
'conf'
};
DESCRIPTION
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
helper. You can extend the normal config file myapp.json
with mode
specific ones like myapp.$mode.json
.
OPTIONS
Mojolicious::Plugin::JSONConfig accepts the same options as Mojolicious::Plugin::Config and the following new ones.
template
# Mojolicious::Lite
plugin
JSONConfig
=> {
template
=> {
line_start
=>
'.'
}};
Template options.
HELPERS
Mojolicious::Plugin::JSONConfig defines the same helpers as Mojolicious::Plugin::Config.
METHODS
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.
sub
parse {
my
(
$self
,
$content
,
$file
,
$conf
,
$app
) =
@_
;
...
$content
=
$self
->render(
$content
,
$file
,
$conf
,
$app
);
...
return
$hash
;
}
register
$plugin
->register;
Register plugin in Mojolicious application.
render
$plugin
->render(
$content
,
$file
,
$conf
,
$app
);
Process configuration file with Mojo::Template.
sub
render {
my
(
$self
,
$content
,
$file
,
$conf
,
$app
) =
@_
;
...
return
$content
;
}