Updated helper for Root class
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Helper.pm
index 006cdfb..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} ) );
@@ -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