X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst.pm;h=66477ec291a6d7d783e8ef4be1da8a8ee4ef3d61;hb=73e131a9b88da13657dbebf049a6c9cf18a31b83;hp=a09747a1408c7f7655c8da001628a3d156898c9a;hpb=9df7c5d97e0b93b4c896265cc7b9e78801328466;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst.pm b/lib/Catalyst.pm index a09747a..66477ec 100644 --- a/lib/Catalyst.pm +++ b/lib/Catalyst.pm @@ -76,7 +76,7 @@ __PACKAGE__->stats_class('Catalyst::Stats'); # Remember to update this in Catalyst::Runtime as well! -our $VERSION = '5.7099_03'; +our $VERSION = '5.8000_03'; sub import { my ( $class, @arguments ) = @_; @@ -346,13 +346,33 @@ When called with no arguments it escapes the processing chain entirely. sub detach { my $c = shift; $c->dispatcher->detach( $c, @_ ) } +=head2 $c->visit( $action [, \@arguments ] ) + +=head2 $c->visit( $class, $method, [, \@arguments ] ) + +Almost the same as C, but does a full dispatch, instead of just +calling the new C<$action> / C<$class-E$method>. This means that C, +C and the method you go to are called, just like a new request. + +C<$c-Estash> is kept unchanged. + +In effect, C allows you to "wrap" another action, just as it +would have been called by dispatching from a URL, while the analogous +C allows you to transfer control to another action as if it had +been reached directly from a URL. + +=cut + +sub visit { my $c = shift; $c->dispatcher->visit( $c, @_ ) } + =head2 $c->go( $action [, \@arguments ] ) =head2 $c->go( $class, $method, [, \@arguments ] ) -Almost the same as C, but does a full dispatch, instead of just -calling the new C<$action> / C<$class-E$method>. This means that C, -C and the method you go to is called, just like a new request. +Almost the same as C, but does a full dispatch like C, +instead of just calling the new C<$action> / +C<$class-E$method>. This means that C, C and the +method you visit are called, just like a new request. C<$c-Estash> is kept unchanged. @@ -993,23 +1013,19 @@ EOF $class->setup_finished(1); } +=head2 $c->uri_for( $action, \@captures?, @args?, \%query_values? ) + =head2 $c->uri_for( $path, @args?, \%query_values? ) -Merges path with C<< $c->request->base >> for absolute URIs and with -C<< $c->namespace >> for relative URIs, then returns a normalized L -object. If any args are passed, they are added at the end of the path. -If the last argument to C is a hash reference, it is assumed to -contain GET parameter key/value pairs, which will be appended to the URI -in standard fashion. +=over -Note that uri_for is destructive to the passed hashref. Subsequent calls -with the same hashref may have unintended results. +=item $action -Instead of C<$path>, you can also optionally pass a C<$action> object -which will be resolved to a path using -C<< $c->dispatcher->uri_for_action >>; if the first element of -C<@args> is an arrayref it is treated as a list of captures to be passed -to C. +A Catalyst::Action object representing the Catalyst action you want to +create a URI for. To get one for an action in the current controller, +use C<< $c->action('someactionname') >>. To get one from different +controller, fetch the controller using C<< $c->controller() >>, then +call C on it. You can maintain the arguments captured by an action (e.g.: Regex, Chained) using C<< $c->req->captures >>. @@ -1020,6 +1036,8 @@ using C<< $c->req->captures >>. # For the Foo action in the Bar controller $c->uri_for($c->controller->('Bar')->action_for('Foo'), $c->req->captures); +=back + =cut sub uri_for { @@ -1215,7 +1233,7 @@ sub welcome_message { Wiki
  • - Mailing-List + Mailing-List
  • IRC channel #catalyst on irc.perl.org @@ -2120,9 +2138,6 @@ sub setup_engine { } Class::MOP::load_class($engine); - #unless (Class::Inspector->loaded($engine)) { - # require Class::Inspector->filename($engine); - #} # check for old engines that are no longer compatible my $old_engine; @@ -2415,8 +2430,8 @@ IRC: Mailing Lists: - http://lists.rawmode.org/mailman/listinfo/catalyst - http://lists.rawmode.org/mailman/listinfo/catalyst-dev + http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst + http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst-dev Web: @@ -2466,6 +2481,8 @@ audreyt: Audrey Tang bricas: Brian Cassidy +Caelum: Rafael Kitover + chansen: Christian Hansen chicks: Christopher Hicks