package [% rootname %]; use Moose; use namespace::autoclean; BEGIN { extends '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 [% name %] =head1 DESCRIPTION [enter your description here] =head1 METHODS =head2 base The root of the chain, offers flexibility to the below actions depending on whether / has an argument (sub default) or not (sub index). =cut sub base :Chained('/') PathPart('') CaptureArgs(0) { # Intentionally blank but you might want to do something here. } =head2 index The root page (/) of the site. =cut sub index :Chained('/base') PathPart('') Args(0) { my ( $self, $c ) = @_; # Hello World $c->response->body( $c->welcome_message ); } =head2 default Standard 404 error page =cut sub default : Chained('/base') PathPart('') Args { my ( $self, $c ) = @_; $c->response->body( 'Page not found' ); $c->response->status(404); } =head2 end Attempt to render a view, if needed. =cut sub end : ActionClass('RenderView') {} =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 __PACKAGE__->meta->make_immutable; 1;