NAME
Module::Starter::Plugin::Attanium - template based module starter for
Attainium apps.
SYNOPSIS
use Module::Starter qw(
Module::Starter::Simple
Module::Starter::Plugin::Template
Module::Starter::Plugin::Attanium
);
Module::Starter->create_distro(%args);
ABSTRACT
The prefered method for using this module is via the
attainium-starter.pl script.
VERSION
Version 0.002
DESCRIPTION
This is a plugin for Module::Starter that builds a skeleton Attainium
module with all the extra files needed to package it for CPAN. It also
generates - an Attanium controller base class for your modules - a
customized CGI::Application::Dispatch subclass - a preconfigured
development config file - a server.pl that runs out of the box - helper
scripts to generate Controller modules subclasses - a helper script to
generate DBIx::Class schema and result classes.
This module is inspired Module::Starter::Plugin::CGIApp by Jaldhar H.
Vyas .
METHODS
new ( %args )
This method calls the "new" supermethod from
Module::Starter::Plugin::Template and then initializes the template
store and renderer. (See "templates" and "renderer" below.)
create_distro ( %args )
This method works as advertised in Module::Starter.
create_t( @modules )
This method creates a bunch of *.t files. *@modules* is a list of all
modules in the distribution.
render( $template, \%options )
This method is subclassed from Module::Starter::Plugin::Template.
It is given an HTML::Template and options and returns the resulting
document.
Data in the "Module::Starter" object which represents a reference to an
array @foo is transformed into an array of hashes with one key called
$foo_item in order to make it usable in an HTML::Template "TMPL_LOOP".
For example:
$data = ['a'. 'b', 'c'];
would become:
$data = [
{ data_item => 'a' },
{ data_item => 'b' },
{ data_item => 'c' },
];
so that in the template you could say:
renderer ()
This method is subclassed from Module::Starter::Plugin::Template but
doesn't do anything as the actual template is created by "render" in
this implementation.
templates ()
This method is subclassed from Module::Starter::Plugin::Template.
It reads in the template files and populates the object's templates
attribute. The module template directory is found by checking the
"MODULE_TEMPLATE_DIR" environment variable and then the config option
"template_dir".
create_MANIFEST_SKIP()
This method creates a "MANIFEST.SKIP" file in the distribution's
directory so that unneeded files can be skipped from inclusion in the
distribution.
create_perlcriticrc ()
This method creates a "perlcriticrc" in the distribution's test
directory so that the behavior of "perl-critic.t" can be modified.
create_server_pl ()
This method creates "server.pl" in the distribution's root directory.
create_server_pl ()
This method creates "config-test.pl" in the distribution's root/config
directory.
create_create_pl ()
This method creates "create_controller.pl" in the distribution's
app/script directory.
create_tmpl ()
This method takes all the template files ending in .tmpl (representing
HTML::Template's and installs them into a directory under the distro
tree. For instance if the distro was called "Foo-Bar", the templates
would be installed in "Foo-Bar/templates".
Note the files will just be copied over not rendered.
create_submodule ()
Implements a default "Home" subclass of the main module. This module
will be auto configured as the default module in the Dispatch subclass.
create_dbic_pl ()
This method creates "create_dbic_schema.pl" in the distribution's
root/script/ directory.
create_dispatch ()
Implements a CGI::Application::Dispatch subclass for this app in the lib
directory under the main modules directory.
BUGS
Please report any bugs or feature requests to through the web interface
at . I will be notified, and then you'll
automatically be notified of progress on your bug as I make changes.
AUTHOR
Gordon Van Amburg,
ACKNOWLEDGEMENT
This module borrows heavily from by
Jaldhar H. Vyas,
COPYRIGHT
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
SEE ALSO
attanium-starter, Attainium, Titanium, CGI::Application,
Module::Starter::Plugin::CGIApp