NAME
Ado - a rapid active commotion (framework for web-projects on Mojolicious)
SYNOPSIS
require Mojolicious::Commands;
Mojolicious::Commands->start_app('Ado');
DESCRIPTION
Ado is a framework for web-projects based on Mojolicious, written in the Perl programming language. This is the base application class. Ado ISA
Mojolicious. For a more detailed description on what Ado is and how to get started with Ado see Ado::Manual.
ATTRIBUTES
Ado inherits all attributes from Mojolicious and implements the following new ones.
ado_home
Returns an instance of Mojo::Home pointing to the base directory where Ado is installed.
~$ ado eval 'say app->ado_home'
/home/berov/opt/public_dev/Ado
CODENAME
Returns the current CODENAME
.
home
#/where/is/your_app/rootdir
$app->home;
Returns the root directory into which $app is installed. The guessing order is the following:
- 1. If
$ENV{MOJO_HOME}
is defined, it is honored. - 2. The upper directory of the directory in which the starting executable
$app->moniker
is found, e.g.bin/..
. This may happen to be the same as "ado_home". - 3. Fallback to "home" in Mojo. This is the usual behavior of any Mojo application.
sessions
Access the Ado::Sessions instance. Instantiates one of Ado::Sessions::File, Ado::Sessions::Database or Mojolicious::Sessions depending on configuration and returns it. By default (no configuration in etc/ado.conf
) a Mojolicious::Sessions is returned.
METHODS
Ado inherits all methods from Mojolicious and implements the following new ones.
startup
Sets various default paths like templates
, site_templates
, public
. Defines "secrets" in Mojolicious as sha1_sum of $moniker.$mode. $home
. Sets "controller_class" in Mojolicious and "namespaces" in Mojolicious::Routes to ${CLASS}::Control. Sets "namespaces" in Mojolicious::Plugins to ['Mojolicious::Plugin', "${CLASS}::Plugin"]
. Sets "namespaces" in Mojolicious::Commands to ${CLASS}::Command
. $CLASS
is usually Ado. Then calls the following methods in the order they are listed. Returns void.
You can amend this behavior in the application configuration file.
load_config
Checks $ENV{MOJO_CONFIG}
and if not set sets it to $app->home/etc/ado.conf
. Loads Mojolicious::Plugin::Config to do the rest of the dirty work. Returns $app.
load_plugins
Does not accept any parameters. Loads plugins listed in $config->{plugins}
. $config->{plugins}
is an ARRAYREF
in which each element is a HASHREF
with keys name
and config
or string representing the plugin name. The name of the plugin is expected to be string that can be passed to "plugin" in Mojolicious. The config
values is another HASHREF
containing the configuration for the plugin. Plugins can be Mojolicious or Ado specific plugins. Every Ado::Plugin::Foo must inherit from Ado::Plugin which ISA
Mojolicious::Plugin. Of course Mojolicious plugins can be used - we count on this. There are plenty of examples on CPAN. Returns $app.
load_routes
Does not accept any parameters. Loads predefined routes from $config->routes
. $config->routes
is an ARRAYREF
in which each element is a HASHREF
with keys corresponding to a method name and value the parameters that will be passed to the method. Currently we use the route
value to pass it to "route" in Mojolicious::Routes,params
value is the second parameter to instantiate the route. via
and to
values are passed to the newly created route. See Mojolicious::Routes::Route and Mojolicious::Guides::Routing for more.
Returns $app.
define_mime_types
Defines any MIME types listed in ado.conf
in types => {...}
. Returns $app.
SPONSORS
The original author.
Become a sponsor and help make Ado the ERP for the enterprise!
SEE ALSO
Mojolicious, Ado::Manual, http://www.thefreedictionary.com/ado,
AUTHOR
Красимир Беров (Krasimir Berov)
COPYRIGHT AND LICENSE
Copyright 2013-2016 Красимир Беров (Krasimir Berov).
This program is free software, you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License v3 (LGPL-3.0). You may copy, distribute and modify the software provided that modifications are open source. However, software that includes the license may release under a different license.
See http://opensource.org/licenses/lgpl-3.0.html for more information.