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 { [] });
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 {
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 {
__PACKAGE__->_encode_check(Encode::FB_CROAK | Encode::LEAVE_SRC);
-# Remember to update this in Catalyst::Runtime as well!
-our $VERSION = '5.90120';
-$VERSION = eval $VERSION if $VERSION =~ /_/; # numify for warning-free dev releases
-
sub import {
my ( $class, @arguments ) = @_;
information about the current client request (including parameters,
cookies, HTTP headers, etc.). See L<Catalyst::Request>.
+There is a predicate method C<has_request> 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 ] )
Returns the current L<Catalyst::Response> object, see there for details.
+There is a predicate method C<has_response> 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
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;
}
$c->log_response;
- if ($c->use_stats) {
- my $elapsed = $c->stats->elapsed;
- my $av = $elapsed == 0 ? '??' : sprintf '%.3f', 1 / $elapsed;
- $c->log->info(
- "Request took ${elapsed}s ($av/s)\n" . $c->stats->report . "\n" );
- }
+ $c->log_stats if $c->use_stats;
return $c->response->status;
}
+=head2 $c->log_stats
+
+Logs statistics.
+
+=cut
+
+sub log_stats {
+ my $c = shift;
+
+ my $elapsed = $c->stats->elapsed;
+ my $av = $elapsed == 0 ? '??' : sprintf '%.3f', 1 / $elapsed;
+ $c->log->info(
+ "Request took ${elapsed}s ($av/s)\n" . $c->stats->report . "\n" );
+}
+
+
=head2 $c->finalize_body
Finalizes body.
condition => sub {
my ($env) = @_;
return if $app->config->{ignore_frontend_proxy};
- return $env->{REMOTE_ADDR} eq '127.0.0.1';
+ return $env->{REMOTE_ADDR} && $env->{REMOTE_ADDR} eq '127.0.0.1';
},
);
}
Robert Sedlacek <rs@474.at>
+rrwo: Robert Rothenberg <rrwo@cpan.org>
+
SpiceMan: Marcel Montes
sky: Arthur Bergman