NAME
Toadfarm::Manual::DSL - Domain specific language for Toadfarm
DESCRIPTION
This manual gives an overview of which functions are available when building a Toadfarm script.
FUNCTIONS
These functions are exported to the caller namespace by default. See "SYNOPSIS" for example usage.
app
$app = app;
Used to fetch the Toadfarm / Mojolicious instance that the rest of the functions below are using.
logging
logging {
combined => 0,
path => "/path/to/log/file.log",
level => "info",
};
Used to set up Mojo::Log. See "path" in Mojo::Log and "level" in Mojo::Log for details on the accepted values. combined
can be set to true to make all the mounted apps use the same Mojo::Log object.
mount
mount "/path/to/mojo-app" => \%config;
mount "My::Mojo::App" => \%config;
mount "My::Mojo::App";
This function will mount a Mojolicious application in the Toadfarm application. An application can either be a full path to the application or a class name. The apps are processed in the order they are defined. This means that the first app that match a given rule will receive the request.
See Toadfarm::Manual::Config for details on %config
.
An application without %config is considered to be a "catch all" application, meaning that it will get all the requests that do not match any of the above.
plugin
plugin "My::Mojo::Plugin" => \%config;
plugin "AccessLog";
Used to load a Mojolicious::Plugin. In addition to the default Mojolicious::Plugin namespace, this application will also search in the Toadfarm::Plugin::
namespace.
run_as
run_as $uid;
run_as $username;
Use "sudo" (might change) to force the script to be run as a given user.
secrets
secrets @str;
Used to set application "secrets" in Mojolicious. A random secret will be set if none is specified.
Note: This function is experimental and might be removed in future release.
start
start;
start \@listen, %config;
start %config;
Used to start the application. Both @listen
and %config
are optional, but will be used to specify the "SETTINGS" in Mojo::Server::Hypnotoad.
These three examples do the same thing:
# 1.
start proxy => 1;
# 2.
start ["http://*:8080"], {proxy => 1};
# 3.
start {listen => ["http://*:8080"], proxy => 1};
SEE ALSO
See also Toadfarm::Manual::Intro.
AUTHOR
Jan Henning Thorsen - jhthorsen@cpan.org