NAME

Mojolicious::Plugin::Module - Mojolicious Plugin.

OVERVIEW

Mojolicious::Plugin::Module is a Mojolicious plugin. This module helps to write more modular applications with Mojo.

After

$app->plugin('Module');

Mojolicious looks for conf/app.conf where you can define (in JSON format) modules which should be used.

For example app.conf contains

{
  "modules": ["Bugov::User", "Bugov::CommonModule"]
}

Two modules will used. They should be located in mod/bugov/user and mod/bugov/common_module directories.

Structure of module

assets                                  # Module's public files.
conf                                    # Some configs.
  module.conf                           # Main config of this module.
lib
  Vendor
    ModuleName
      ... controllers, helpers, etc ... # The same what you can do in Mojolicious App.
    ModuleName.pm                       # Should extends Mojolicious::Plugin::Module::Abstract.
templates
  vendor
    module_name
      ... templates ...                 # Templates used in this module.

METHODS

add($name, $module)

$name - required parameter. Defines package of module. For example "Vendor::ModuleName".

$module - optional parameter. Module object which be finded as $name in module manager. If <$module> does not defined $name will be loaded.

get($name)

Get module by $name.

SEE ALSO

Mojolicious::Plugin::Module::Abstract, Mojolicious::Plugin::Module::Manager, Mojolicious::Plugin::Module::Assets, Mojolicious::Guides, http://mojolicio.us.

COPYRIGHT AND LICENSE

Copyright (C) 2014, Georgy Bazhukov.

This program is free software, you can redistribute it and/or modify it under the terms of the Artistic License version 2.0.