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.