X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=lib%2FCatalyst.pm;h=aca49201cfe30c72d81b99f005cff2ce518e49ec;hp=5a4ad732e7c4995f0e87028aab48a8888a3fef6e;hb=b5ecfcf07b8ffe7e9984f0279c8781ce51c6ac6a;hpb=6f409682667c23a00552d0573c157ee3487c29bc diff --git a/lib/Catalyst.pm b/lib/Catalyst.pm index 5a4ad73..aca4920 100644 --- a/lib/Catalyst.pm +++ b/lib/Catalyst.pm @@ -22,10 +22,10 @@ use attributes; require Catalyst::Helper; require Catalyst::PAR; require Catalyst::Build; +require Catalyst::Test; require Catalyst::Engine::HTTP; require Catalyst::Engine::CGI; -require Catalyst::Engine::FastCGI; require Catalyst::Controller; require Catalyst::Model; @@ -56,7 +56,7 @@ our $DETACH = "catalyst_detach\n"; require Module::Pluggable::Fast; # Helper script generation -our $CATALYST_SCRIPT_GEN = 14; +our $CATALYST_SCRIPT_GEN = 18; __PACKAGE__->mk_classdata($_) for qw/components arguments dispatcher engine log dispatcher_class @@ -197,43 +197,37 @@ they are loaded in exactly the order in which they appear. The following flags are supported: -=over 4 - -=item -Debug +=head2 -Debug Enables debug output. -=item -Engine +=head2 -Engine Forces Catalyst to use a specific engine. Omit the C prefix of the engine name, i.e.: use Catalyst qw/-Engine=CGI/; -=item -Home +=head2 -Home Forces Catalyst to use a specific home directory, e.g.: use Catalyst qw[-Home=/usr/sri]; -=item -Log +=head2 -Log Specifies log level. -=back - =head1 METHODS =head2 Information about the current request -=over 4 - -=item $c->action +=head2 $c->action Returns a L object for the current action, which stringifies to the action name. See L. -=item $c->namespace +=head2 $c->namespace Returns the namespace of the current action, i.e., the uri prefix corresponding to the controller of the current action. For example: @@ -241,22 +235,18 @@ corresponding to the controller of the current action. For example: # in Controller::Foo::Bar $c->namespace; # returns 'foo/bar'; -=item $c->request +=head2 $c->request -=item $c->req +=head2 $c->req Returns the current L object. See L. -=back - =head2 Processing and response to the current request -=over 4 - -=item $c->forward( $action [, \@arguments ] ) +=head2 $c->forward( $action [, \@arguments ] ) -=item $c->forward( $class, $method, [, \@arguments ] ) +=head2 $c->forward( $class, $method, [, \@arguments ] ) Forwards processing to a private action. If you give a class name but no method, C is called. You may also optionally pass arguments @@ -273,9 +263,9 @@ C<$c-Ereq-Eargs> will be restored to the previous values. sub forward { my $c = shift; $c->dispatcher->forward( $c, @_ ) } -=item $c->detach( $action [, \@arguments ] ) +=head2 $c->detach( $action [, \@arguments ] ) -=item $c->detach( $class, $method, [, \@arguments ] ) +=head2 $c->detach( $class, $method, [, \@arguments ] ) The same as C, but doesn't return. @@ -283,13 +273,15 @@ The same as C, but doesn't return. sub detach { my $c = shift; $c->dispatcher->detach( $c, @_ ) } -=item $c->error +=head2 $c->error -=item $c->error($error, ...) +=head2 $c->error($error, ...) -=item $c->error($arrayref) +=head2 $c->error($arrayref) -Returns an arrayref containing error messages. +Returns an arrayref containing error messages. If Catalyst encounters an +error while processing a request, it stores the error in $c->error. This +method should not be used to store non-fatal error messages. my @error = @{ $c->error }; @@ -297,7 +289,8 @@ Add a new error. $c->error('Something bad happened'); -Clear errors. +Clear errors. You probably don't want to clear the errors unless you are +implementing a custom error screen. $c->error(0); @@ -313,13 +306,13 @@ sub error { return $c->{error} || []; } -=item $c->response +=head2 $c->response -=item $c->res +=head2 $c->res Returns the current L object. -=item $c->stash +=head2 $c->stash Returns a hashref to the stash, which may be used to store data and pass it between components during a request. You can also set hash keys by @@ -347,19 +340,15 @@ sub stash { return $c->{stash}; } -=item $c->state +=head2 $c->state Contains the return value of the last executed action. -=back - =head2 Component Accessors -=over 4 - -=item $c->comp($name) +=head2 $c->comp($name) -=item $c->component($name) +=head2 $c->component($name) Gets a component object by name. This method is no longer recommended, unless you want to get a specific component by full @@ -401,7 +390,7 @@ sub component { return sort keys %{ $c->components }; } -=item $c->controller($name) +=head2 $c->controller($name) Gets a L instance by name. @@ -416,7 +405,7 @@ sub controller { return $c->comp("C::$name"); } -=item $c->model($name) +=head2 $c->model($name) Gets a L instance by name. @@ -431,7 +420,7 @@ sub model { return $c->comp("M::$name"); } -=item $c->view($name) +=head2 $c->view($name) Gets a L instance by name. @@ -446,19 +435,15 @@ sub view { return $c->comp("V::$name"); } -=back - =head2 Class data and helper classes -=over 4 - -=item $c->config +=head2 $c->config Returns or takes a hashref containing the application's configuration. __PACKAGE__->config({ db => 'dsn:SQLite:foo.db' }); -=item $c->debug +=head2 $c->debug Overload to enable debug messages (same as -Debug option). @@ -466,17 +451,17 @@ Overload to enable debug messages (same as -Debug option). sub debug { 0 } -=item $c->dispatcher +=head2 $c->dispatcher Returns the dispatcher instance. Stringifies to class name. See L. -=item $c->engine +=head2 $c->engine Returns the engine instance. Stringifies to the class name. See L. -=item $c->log +=head2 $c->log Returns the logging object instance. Unless it is already set, Catalyst sets this up with a L object. To use your own log class: @@ -489,13 +474,9 @@ L man page. =cut -=back - =head2 Utility methods -=over 4 - -=item $c->path_to(@path) +=head2 $c->path_to(@path) Merges C<@path> with C<$c-Econfig-E{home}> and returns a L object. @@ -513,7 +494,7 @@ sub path_to { else { return file( $c->config->{home}, @path ) } } -=item $c->plugin( $name, $class, @args ) +=head2 $c->plugin( $name, $class, @args ) Helper method for plugins. It creates a classdata accessor/mutator and loads and instantiates the given class. @@ -548,7 +529,7 @@ sub plugin { if $class->debug; } -=item MyApp->setup +=head2 MyApp->setup Initializes the dispatcher and engine, loads any plugins, and loads the model, view, and controller components. You may also specify an array @@ -610,8 +591,11 @@ sub setup { <<"EOF") if ( $ENV{CATALYST_SCRIPT_GEN} && ( $ENV{CATALYST_SCRIPT_GEN} < $Catalyst::CATALYST_SCRIPT_GEN ) ); You are running an old script! - Please update by running: - catalyst.pl -nonew -scripts $class + Please update by running (this will overwrite existing files): + catalyst.pl -force -scripts $class + + or (this will not overwrite existing files): + catalyst.pl -scripts $class EOF if ( $class->debug ) { @@ -677,7 +661,7 @@ EOF $class->log->_flush() if $class->log->can('_flush'); } -=item $c->uri_for( $path, [ @args ] ) +=head2 $c->uri_for( $path, [ @args ] ) Merges path with C<$c-Erequest-Ebase> for absolute uri's and with C<$c-Enamespace> for relative uri's, then returns a @@ -707,7 +691,7 @@ sub uri_for { $base )->canonical; } -=item $c->welcome_message +=head2 $c->welcome_message Returns the Catalyst welcome HTML page. @@ -852,32 +836,28 @@ perldoc setup_dispatcher +=head2 $c->setup_dispatcher Sets up dispatcher. @@ -1550,7 +1530,7 @@ sub setup_dispatcher { $class->dispatcher( $dispatcher->new ); } -=item $c->setup_engine +=head2 $c->setup_engine Sets up engine. @@ -1674,7 +1654,7 @@ qq/Couldn't load engine "$engine" (maybe you forgot to install it?), "$@"/ $class->engine( $engine->new ); } -=item $c->setup_home +=head2 $c->setup_home Sets up the home directory. @@ -1701,7 +1681,7 @@ sub setup_home { } } -=item $c->setup_log +=head2 $c->setup_log Sets up log. @@ -1728,7 +1708,7 @@ sub setup_log { } } -=item $c->setup_plugins +=head2 $c->setup_plugins Sets up plugins. @@ -1756,11 +1736,11 @@ sub setup_plugins { } } -=item $c->stack +=head2 $c->stack Returns the stack. -=item $c->write( $data ) +=head2 $c->write( $data ) Writes $data to the output stream. When using this method directly, you will need to manually set the C header to the length of @@ -1777,7 +1757,7 @@ sub write { return $c->engine->write( $c, @_ ); } -=item version +=head2 version Returns the Catalyst version number. Mostly useful for "powered by" messages in template systems. @@ -1786,8 +1766,6 @@ messages in template systems. sub version { return $Catalyst::VERSION } -=back - =head1 INTERNAL ACTIONS Catalyst uses internal actions like C<_DISPATCH>, C<_BEGIN>, C<_AUTO>, @@ -1877,23 +1855,19 @@ Wiki: =head1 SEE ALSO -=over 4 - -=item L - The Catalyst Manual +=head2 L - The Catalyst Manual -=item L, L - Base classes for components +=head2 L, L - Base classes for components -=item L - Core engine +=head2 L - Core engine -=item L - Log class. +=head2 L - Log class. -=item L - Request object +=head2 L - Request object -=item L - Response object +=head2 L - Response object -=item L - The test suite. - -=back +=head2 L - The test suite. =head1 CREDITS @@ -1927,6 +1901,8 @@ David Kamholz David Naughton +Drew Taylor + Gary Ashton Jones Geoff Richards