change to use a 301 for redirects.
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Helper.pm
index 3b86793..1838b7a 100644 (file)
@@ -84,6 +84,7 @@ sub mk_app {
         $self->_mk_dirs;
         $self->_mk_config;
         $self->_mk_appclass;
+        $self->_mk_rootclass;
         $self->_mk_readme;
         $self->_mk_changes;
         $self->_mk_apptest;
@@ -331,6 +332,9 @@ sub _mk_dirs {
         $self->{c} = File::Spec->catdir( $self->{mod}, 'Controller' );
         $self->mk_dir( $self->{c} );
     }
+    my $name = $self->{name};
+    $self->{rootname} =
+      $self->{short} ? "$name\::C::Root" : "$name\::Controller::Root";
     $self->{base} = File::Spec->rel2abs( $self->{dir} );
 }
 
@@ -340,6 +344,12 @@ sub _mk_appclass {
     $self->render_file( 'appclass', "$mod.pm" );
 }
 
+sub _mk_rootclass {
+    my $self = shift;
+    $self->render_file( 'rootclass',
+        File::Spec->catfile( $self->{c}, "Root.pm" ) );
+}
+
 sub _mk_makefile {
     my $self = shift;
     $self->{path} = File::Spec->catfile( 'lib', split( '::', $self->{name} ) );
@@ -360,7 +370,7 @@ sub _mk_config {
     my $dir       = $self->{dir};
     my $appprefix = $self->{appprefix};
     $self->render_file( 'config',
-        File::Spec->catfile( $dir, "$appprefix.json" ) );
+        File::Spec->catfile( $dir, "$appprefix.yml" ) );
 }
 
 sub _mk_readme {
@@ -537,7 +547,7 @@ use warnings;
 # 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';
 
@@ -546,6 +556,10 @@ our $VERSION = '0.01';
 #
 __PACKAGE__->setup;
 
+#
+# IMPORTANT: Please look into [% rootname %] for more
+#
+
 =head1 NAME
 
 [% name %] - Catalyst based application
@@ -558,6 +572,47 @@ __PACKAGE__->setup;
 
 Catalyst based application.
 
+=head1 SEE ALSO
+
+L<[% rootname %]>, L<Catalyst>
+
+=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';
+
+#
+# Sets the actions in this controller to be registered with no prefix
+# so they function identically to actions created in MyApp.pm
+#
+__PACKAGE__->config->{namespace} = '';
+
+=head1 NAME
+
+[% rootname %] - Root Controller for this Catalyst based application
+
+=head1 SYNOPSIS
+
+See L<[% name %]>.
+
+=head1 DESCRIPTION
+
+Root Controller for this Catalyst based application.
+
 =head1 METHODS
 
 =cut
@@ -608,7 +663,7 @@ use inc::Module::Install;
 name '[% dir %]';
 all_from '[% path %]';
 
-requires Catalyst => '5.62';
+requires Catalyst => '5.64';
 
 catalyst;
 
@@ -616,9 +671,8 @@ install_script glob('script/*.pl');
 auto_install;
 WriteAll;
 __config__
-{
-    "name": "[% name %]"
-}
+---
+name: [% name %]
 __readme__
 Run script/[% appprefix %]_server.pl to test the application.
 __changes__
@@ -627,11 +681,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";
@@ -640,6 +699,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";
@@ -784,7 +845,7 @@ my $port          = 3000;
 my $keepalive     = 0;
 my $restart       = 0;
 my $restart_delay = 1;
-my $restart_regex = '\.yml$|\.yaml$|\.json|\.pm$';
+my $restart_regex = '\.yml$|\.yaml$|\.pm$';
 
 my @argv = @ARGV;
 
@@ -845,7 +906,7 @@ require [% name %];
    -rd -restartdelay  delay between file checks
    -rr -restartregex  regex match files that trigger
                       a restart when modified
-                      (defaults to '\.yml$|\.yaml$|\.json|\.pm$')
+                      (defaults to '\.yml$|\.yaml$|\.pm$')
 
  See also:
    perldoc Catalyst::Manual
@@ -1042,12 +1103,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 %]');