X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=lib%2FCatalyst.pm;h=de488a4be9b55988f566f09855843abface96c2d;hp=60a6e9edd019a165eab2a3c7600ff1481bfe5863;hb=HEAD;hpb=17f90595f57c5153402809ea12ecdd00b3c44a0f diff --git a/lib/Catalyst.pm b/lib/Catalyst.pm index 60a6e9e..de488a4 100644 --- a/lib/Catalyst.pm +++ b/lib/Catalyst.pm @@ -53,6 +53,9 @@ use Class::Load 'load_class'; use Encode 2.21 'decode_utf8', 'encode_utf8'; use Scalar::Util; +our $VERSION = '5.90128'; +$VERSION =~ tr/_//d; + BEGIN { require 5.008003; } has stack => (is => 'ro', default => sub { [] }); @@ -68,6 +71,7 @@ has request => ( my $composed_request_class = $class->composed_request_class; return $composed_request_class->new( $self->_build_request_constructor_args); }, + predicate => 'has_request', lazy => 1, ); sub _build_request_constructor_args { @@ -113,6 +117,7 @@ has response => ( my $composed_response_class = $class->composed_response_class; return $composed_response_class->new( $self->_build_response_constructor_args); }, + predicate=>'has_response', lazy => 1, ); sub _build_response_constructor_args { @@ -204,10 +209,6 @@ sub composed_stats_class { __PACKAGE__->_encode_check(Encode::FB_CROAK | Encode::LEAVE_SRC); -# Remember to update this in Catalyst::Runtime as well! -our $VERSION = '5.90124'; -$VERSION = eval $VERSION if $VERSION =~ /_/; # numify for warning-free dev releases - sub import { my ( $class, @arguments ) = @_; @@ -409,6 +410,10 @@ Returns the current L object, giving access to information about the current client request (including parameters, cookies, HTTP headers, etc.). See L. +There is a predicate method C that returns true if the +request object has been created. This is something you might need to +check if you are writing plugins that run before a request is finalized. + =head2 REQUEST FLOW HANDLING =head2 $c->forward( $action [, \@arguments ] ) @@ -557,6 +562,10 @@ sub go { my $c = shift; $c->dispatcher->go( $c, @_ ) } Returns the current L object, see there for details. +There is a predicate method C that returns true if the +request object has been created. This is something you might need to +check if you are writing plugins that run before a request is finalized. + =head2 $c->stash Returns a hashref to the stash, which may be used to store data and pass @@ -1634,7 +1643,7 @@ sub uri_for { my $num_captures = $expanded_action->number_of_captures; # ->uri_for( $action, \@captures_and_args, \%query_values? ) - if( !@args && $action->number_of_args ) { + if( !@args && $action->number_of_args && @$captures > $num_captures ) { unshift @args, splice @$captures, $num_captures; }