GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Mojolicious::Plugin::NotYAMLConfig(3) User Contributed Perl Documentation Mojolicious::Plugin::NotYAMLConfig(3)

Mojolicious::Plugin::NotYAMLConfig - Not quite YAML configuration plugin

  # myapp.yml (it's just YAML with embedded Perl)
  ---
  foo: bar
  baz:
    - ♥
  music_dir: <%= app->home->child('music') %>

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

  # Mojolicious::Lite
  my $config = plugin 'NotYAMLConfig';
  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 NotYAMLConfig => {file => '/etc/myapp.conf'};

Mojolicious::Plugin::NotYAMLConfig is a YAML configuration plugin that preprocesses its input with Mojo::Template. By default it uses CPAN::Meta::YAML for parsing, which is not the best YAML module available, but good enough for most config files. If you need something more correct you can use a different module like YAML::XS with the "module" option.

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.yml"). You can extend the normal configuration file "$moniker.yml" with "mode" specific ones like "$moniker.$mode.yml", 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.

Mojolicious::Plugin::NotYAMLConfig inherits all options from Mojolicious::Plugin::JSONConfig and supports the following new ones.

  # Mojolicious::Lite
  plugin NotYAMLConfig => {module => 'YAML::PP'};

Alternative YAML module to use for parsing.

Mojolicious::Plugin::NotYAMLConfig inherits all methods from Mojolicious::Plugin::JSONConfig and implements the following new ones.

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

Process content with "render" in Mojolicious::Plugin::JSONConfig and parse it with CPAN::Meta::YAML.

  sub parse ($self, $content, $file, $conf, $app) {
    ...
    $content = $self->render($content, $file, $conf, $app);
    ...
    return $hash;
  }

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

Register plugin in Mojolicious application and merge configuration.

Mojolicious, Mojolicious::Guides, <https://mojolicious.org>.
2021-12-08 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.