NAME

Catalyst::Helper - Bootstrap a Catalyst application

SYNOPSIS

catalyst.pl <myappname>

DESCRIPTION

This module is used by catalyst.pl to create a set of scripts for a new catalyst application. The scripts each contain documentation and will output help on how to use them if called incorrectly or in some cases, with no arguments.

It also provides some useful methods for a Helper module to call when creating a component. See "METHODS".

SCRIPTS

_create.pl

Used to create new components for a catalyst application at the development stage.

_server.pl

The catalyst test server, starts an HTTPD which outputs debugging to the terminal.

_test.pl

A script for running tests from the command-line.

_cgi.pl

Run your application as a CGI.

_fastcgi.pl

Run the application as a fastcgi app. Either by hand, or call this from FastCgiServer in your http server config.

HELPERS

The "_create.pl" script creates application components using Helper modules. The Catalyst team provides a good number of Helper modules for you to use. You can also add your own.

Helpers are classes that provide two methods.

* mk_compclass - creates the Component class
* mk_comptest  - creates the Component test

So when you call scripts/myapp_create.pl view MyView TT, create will try to execute Catalyst::Helper::View::TT->mk_compclass and Catalyst::Helper::View::TT->mk_comptest.

See Catalyst::Helper::View::TT and Catalyst::Helper::Model::DBIC::Schema for examples.

All helper classes should be under one of the following namespaces.

Catalyst::Helper::Model::
Catalyst::Helper::View::
Catalyst::Helper::Controller::

COMMON HELPERS

NOTE

The helpers will read author name from /etc/passwd by default. + To override, please export the AUTHOR variable.

METHODS

mk_compclass

This method in your Helper module is called with $helper which is a Catalyst::Helper object, and whichever other arguments the user added to the command-line. You can use the $helper to call methods described below.

If the Helper module does not contain a mk_compclass method, it will fall back to calling "render_file", with an argument of compclass.

mk_comptest

This method in your Helper module is called with $helper which is a Catalyst::Helper object, and whichever other arguments the user added to the command-line. You can use the $helper to call methods described below.

If the Helper module does not contain a mk_compclass method, it will fall back to calling "render_file", with an argument of comptest.

mk_stuff

This method is called if the user does not supply any of the usual component types view, controller, model. It is passed the $helper object (an instance of Catalyst::Helper), and any other arguments the user typed.

There is no fallback for this method.

INTERNAL METHODS

These are the methods that the Helper classes can call on the <$helper> object passed to them.

render_file ($file, $path, $vars)

Render and create a file from a template in DATA using Template Toolkit. $file is the relevent chunk of the __DATA__ section, $path is the path to the file and $vars is the hashref as expected by Template Toolkit.

get_file ($class, $file)

Fetch file contents from the DATA section. This is used internally by "render_file". $class is the name of the class to get the DATA section from. __PACKAGE__ or ( caller(0) )[0] might be sensible values for this.

mk_app

Create the main application skeleton. This is called by catalyst.pl.

mk_component ($app)

This method is called by create.pl to make new components for your application.

mk_dir ($path)

Surprisingly, this function makes a directory.

mk_file ($file, $content)

Writes content to a file. Called by "render_file".

next_test ($test_name)

Calculates the name of the next numbered test file and returns it. Don't give the number or the .t suffix for the test name.

NOTE

The helpers will read author name from /etc/passwd by default. To override, please export the AUTHOR variable.

SEE ALSO

Catalyst::Manual, Catalyst::Test, Catalyst::Request, Catalyst::Response, Catalyst

AUTHORS

Catalyst Contributors, see Catalyst.pm

LICENSE

This library is free software. You can redistribute it and/or modify it under the same terms as Perl itself.