Yuki Kimoto > Mojolicious-Plugin-INIConfig-0.03 > Mojolicious::Plugin::INIConfig

Download:
Mojolicious-Plugin-INIConfig-0.03.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 0.03   Source  

NAME ^

Mojolicious::Plugin::INIConfig - Mojolicious Plugin to create routes automatically

CAUTION ^

This module is alpha release. the feature will be changed without warnings.

SYNOPSIS ^

  # myapp.ini
  [section]
  foo=bar
  music_dir=<%= app->home->rel_dir('music') %>

  # Mojolicious
  my $config = $self->plugin('INIConfig');

  # Mojolicious::Lite
  my $config = plugin 'INIConfig';

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

  # The configuration is available application wide
  my $config = app->config;

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

DESCRIPTION ^

Mojolicious::Plugin::INIConfig is a INI configuration plugin that preprocesses its input with Mojo::Template.

The application object can be accessed via $app or the app function. You can extend the normal config file myapp.ini with mode specific ones like myapp.$mode.ini. A default configuration filename will be generated from the value of "moniker" in Mojolicious.

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

OPTIONS ^

Mojolicious::Plugin::INIConfig inherits all options from Mojolicious::Plugin::Config and supports the following new ones.

default

  # Mojolicious::Lite
  plugin Config => {default => {section => {foo => 'bar'}}};

Default configuration, making configuration files optional.

template

  # Mojolicious::Lite
  plugin INIConfig => {template => {line_start => '.'}};

Attribute values passed to Mojo::Template object used to preprocess configuration files.

METHODS ^

Mojolicious::Plugin::INIConfig 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 Config::Tiny.

  sub parse {
    my ($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.

render

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

Process configuration file with Mojo::Template.

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

BACKWARDS COMPATIBILITY POLICY ^

If a feature is DEPRECATED, you can know it by DEPRECATED warnings. DEPRECATED feature is removed after five years, but if at least one person use the feature and tell me that thing I extend one year each time he tell me it.

DEPRECATION warnings can be suppressed by MOJOLICIOUS_PLUGIN_INICONFIG_SUPPRESS_DEPRECATION environment variable.

EXPERIMENTAL features will be changed without warnings.

BUGS ^

Please tell me bugs if you find bug.

<kimoto.yuki at gmail.com>

http://github.com/yuki-kimoto/Mojolicious-Plugin-INIConfig

COPYRIGHT & LICENSE ^

Copyright 2013-2013 Yuki Kimoto, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

syntax highlighting: