The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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::Introduction.

AUTHOR

Jan Henning Thorsen - jhthorsen@cpan.org