X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FHelper.pm;h=9e0e9ea14b793ce47e887be5f43ee1932401ae5b;hb=6aa6b72b17e5096f91897d74f5e93a1d750b0412;hp=9c83a9cc0bcabb645e84b732b2400a4d3b4e07cd;hpb=d7d72ad91cc796713d84c256e08ef9b1a6473542;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Helper.pm b/lib/Catalyst/Helper.pm index 9c83a9c..9e0e9ea 100644 --- a/lib/Catalyst/Helper.pm +++ b/lib/Catalyst/Helper.pm @@ -82,7 +82,9 @@ sub mk_app { if ($gen_app) { $self->_mk_dirs; + $self->_mk_config; $self->_mk_appclass; + $self->_mk_rootclass; $self->_mk_readme; $self->_mk_changes; $self->_mk_apptest; @@ -339,6 +341,15 @@ sub _mk_appclass { $self->render_file( 'appclass', "$mod.pm" ); } +sub _mk_rootclass { + my $self = shift; + my $c = $self->{c}; + my $name = $self->{name}; + $self->{rootname} = + $self->{short} ? "$name\::C::Root" : "$name\::Controller::Root"; + $self->render_file( 'rootclass', File::Spec->catfile( $c, "Root.pm" ) ); +} + sub _mk_makefile { my $self = shift; $self->{path} = File::Spec->catfile( 'lib', split( '::', $self->{name} ) ); @@ -354,6 +365,14 @@ sub _mk_makefile { } } +sub _mk_config { + my $self = shift; + my $dir = $self->{dir}; + my $appprefix = $self->{appprefix}; + $self->render_file( 'config', + File::Spec->catfile( $dir, "$appprefix.yml" ) ); +} + sub _mk_readme { my $self = shift; my $dir = $self->{dir}; @@ -525,18 +544,14 @@ use warnings; # Set flags and add plugins for the application # # -Debug: activates the debug mode for very useful log messages -# Static::Simple: will serve static files from the applications root directory +# Static::Simple: will serve static files from the application's root +# directory # -use Catalyst qw/-Debug Static::Simple/; +use Catalyst qw/-Debug ConfigLoader Static::Simple/; our $VERSION = '0.01'; # -# Configure the application -# -__PACKAGE__->config( name => '[% name %]' ); - -# # Start the application # __PACKAGE__->setup; @@ -553,6 +568,42 @@ __PACKAGE__->setup; Catalyst based application. +=head1 AUTHOR + +[% author %] + +=head1 LICENSE + +This library is free software, you can redistribute it and/or modify +it under the same terms as Perl itself. + +=cut + +1; +__rootclass__ +package [% rootname %]; + +use strict; +use warnings; +use base 'Catalyst::Controller'; + +# +# A empty namespace attaches this Controller to the root +# +__PACKAGE__->config->{namespace} = ''; + +=head1 NAME + +[% rootname %] - Root Controller of this Catalyst based application + +=head1 SYNOPSIS + +See L<[% name %]>. + +=head1 DESCRIPTION + +Root Controller of this Catalyst based application. + =head1 METHODS =cut @@ -603,13 +654,16 @@ use inc::Module::Install; name '[% dir %]'; all_from '[% path %]'; -requires Catalyst => '5.62'; +requires Catalyst => '5.64'; catalyst; install_script glob('script/*.pl'); auto_install; WriteAll; +__config__ +--- +name: [% name %] __readme__ Run script/[% appprefix %]_server.pl to test the application. __changes__ @@ -618,11 +672,16 @@ This file documents the revision history for Perl extension [% name %]. 0.01 [% time %] - initial revision, generated by Catalyst __apptest__ +use strict; +use warnings; use Test::More tests => 2; -BEGIN { use_ok( Catalyst::Test, '[% name %]' ); } -ok( request('/')->is_success ); +BEGIN { use_ok 'Catalyst::Test', '[% name %]' } + +ok( request('/')->is_success, 'Request should succeed' ); __podtest__ +use strict; +use warnings; use Test::More; eval "use Test::Pod 1.14"; @@ -631,6 +690,8 @@ plan skip_all => 'set TEST_POD to enable this test' unless $ENV{TEST_POD}; all_pod_files_ok(); __podcoveragetest__ +use strict; +use warnings; use Test::More; eval "use Test::Pod::Coverage 1.04"; @@ -1033,12 +1094,14 @@ it under the same terms as Perl itself. 1; __comptest__ +use strict; +use warnings; [% IF long_type == 'Controller' %] use Test::More tests => 3; -use_ok( Catalyst::Test, '[% app %]' ); +use_ok( 'Catalyst::Test', '[% app %]' ); use_ok('[% class %]'); -ok( request('[% uri %]')->is_success ); +ok( request('[% uri %]')->is_success, 'Request should succeed' ); [% ELSE %] use Test::More tests => 1; use_ok('[% class %]');