Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Mojolicious::Plugin::JUseroContributed Perl Mojolicious::Plugin::JSONConfig(3)

NAME
       Mojolicious::Plugin::JSONConfig - JSON configuration plugin

SYNOPSIS
	 # myapp.json (it's just JSON with embedded Perl)
	 {
	   %# Just a value
	   "foo": "bar",

	   %# Nested data structures are fine too
	   "baz": ["aY"],

	   %# You have full access to the application
	   "music_dir":	"<%= app->home->child('music') %>"
	 }

	 # Mojolicious
	 my $config = $app->plugin('JSONConfig');
	 say $config->{foo};

	 # Mojolicious::Lite
	 my $config = plugin 'JSONConfig';
	 say $config->{foo};

	 # foo.html.ep
	 %= config->{foo}

	 # The configuration is	available application-wide
	 my $config = app->config;
	 say $config->{foo};

	 # Everything can be customized	with options
	 my $config = plugin JSONConfig	=> {file => '/etc/myapp.conf'};

DESCRIPTION
       Mojolicious::Plugin::JSONConfig is a JSON configuration plugin that
       preprocesses its	input with Mojo::Template.

       The application object can be accessed via $app or the "app" function.
       A default configuration filename	in the application home	directory will
       be generated from the value of "moniker"	in Mojolicious
       ("$moniker.json"). You can extend the normal configuration file
       "$moniker.json" with "mode" specific ones like "$moniker.$mode.json",
       which will be detected automatically.

       These configuration values are currently	reserved:

       "config_override"
	 If this configuration value has been set in "config" in Mojolicious
	 when this plugin is loaded, it	will not do anything besides loading
	 deployment specific plugins.

       "plugins"
	   "plugins": [{"SetUserGroup":	{"user": "sri",	"group": "staff"}}]

	 One or	more deployment	specific plugins that should be	loaded right
	 after this plugin has been loaded.

       The code	of this	plugin is a good example for learning to build new
       plugins,	you're welcome to fork it.

       See "PLUGINS" in	Mojolicious::Plugins for a list	of plugins that	are
       available by default.

OPTIONS
       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.

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 ($self, $content, $file, $conf, $app) {
	   ...
	   $content = $self->render($content, $file, $conf, $app);
	   ...
	   return $hash;
	 }

   register
	 my $config = $plugin->register(Mojolicious->new);
	 my $config = $plugin->register(Mojolicious->new, {file	=> '/etc/foo.conf'});

       Register	plugin in Mojolicious application and merge configuration.

   render
	 $plugin->render($content, $file, $conf, $app);

       Process configuration file with Mojo::Template.

	 sub render ($self, $content, $file, $conf, $app) {
	   ...
	   return $content;
	 }

SEE ALSO
       Mojolicious, Mojolicious::Guides, <https://mojolicious.org>.

perl v5.32.1			  2021-02-12Mojolicious::Plugin::JSONConfig(3)

NAME | SYNOPSIS | DESCRIPTION | OPTIONS | METHODS | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Mojolicious::Plugin::JSONConfig&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help