my ( $c, $class, $code ) = @_;
$class = $c->comp($class) || $class;
$c->state(0);
+ my $callsub = ( caller(1) )[3];
eval {
if ( $c->debug )
{
my $action = $c->actions->{reverse}->{"$code"};
$action = "/$action" unless $action =~ /\-\>/;
+ $action = "-> $action" if $callsub =~ /forward$/;
my ( $elapsed, @state ) =
$c->benchmark( $code, $class, $c, @{ $c->req->args } );
push @{ $c->{stats} },
- _prettify( $action, sprintf( '%fs', $elapsed ), '' );
+ _prettify_stats( $action, sprintf( '%fs', $elapsed ), '' );
$c->state(@state);
}
else { $c->state( &$code( $class, $c, @{ $c->req->args } ) ) }
$c->finalize_cookies;
- if ( my $location = $c->res->redirect ) {
+ if ( my $location = $c->response->redirect ) {
$c->log->debug(qq/Redirecting to "$location"/) if $c->debug;
$c->response->header( Location => $location );
- $c->response->status(302);
+ $c->response->status(302) if $c->response->status !~ /3\d\d$/;
}
if ( $#{ $c->error } >= 0 ) {
$c->finalize_error;
}
- if ( !$c->res->output && $c->res->status !~ /^(1\d\d|[23]04)$/ ) {
+ if ( !$c->response->output && $c->response->status !~ /^(1|3)\d\d$/ ) {
$c->finalize_error;
}
- if ( $c->res->output ) {
- use bytes; # play safe with a utf8 aware perl
- $c->response->content_length( length $c->res->output );
+ if ( $c->response->output && !$c->response->content_length ) {
+ use bytes; # play safe with a utf8 aware perl
+ $c->response->content_length( length $c->response->output );
}
my $status = $c->finalize_headers;
my @params;
for my $key ( keys %{ $c->req->params } ) {
my $value = $c->req->params->{$key} || '';
- push @params, " $key=$value";
+ push @params, " + $key=$value";
}
$c->log->debug( 'Parameters are', @params );
}
$self->setup_actions($comp);
}
my @comps;
- push @comps, " $_" for keys %{ $self->components };
+ push @comps, " + $_" for keys %{ $self->components };
$self->log->debug( 'Loaded components', @comps )
if ( @comps && $self->debug );
my $actions = $self->actions;
my $uid = $parent->getUID;
for my $action ( keys %{ $actions->{private}->{$uid} } ) {
my ( $class, $code ) = @{ $actions->{private}->{$uid}->{$action} };
- push @$messages, _prettify( "$prefix$action", $class, $code );
+ push @$messages,
+ _prettify_action( "$prefix$action", $class, $code );
}
$walker->( $walker, $_, $messages, $prefix )
for $parent->getAllChildren;
@messages = ('Loaded plain actions');
for my $plain ( sort keys %{ $actions->{plain} } ) {
my ( $class, $code ) = @{ $actions->{plain}->{$plain} };
- push @messages, _prettify( "/$plain", $class, $code );
+ push @messages, _prettify_action( "/$plain", $class, $code );
}
$self->log->debug(@messages) if ( $#messages && $self->debug );
@messages = ('Loaded regex actions');
for my $regex ( sort keys %{ $actions->{regex} } ) {
my ( $class, $code ) = @{ $actions->{regex}->{$regex} };
- push @messages, _prettify( $regex, $class, $code );
+ push @messages, _prettify_action( $regex, $class, $code );
}
$self->log->debug(@messages) if ( $#messages && $self->debug );
}
return $prefix;
}
-sub _prettify {
+sub _prettify_action {
my ( $val1, $val2, $val3 ) = @_;
- formline
-' @<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<<<<<<<<< @>>>>>>>>>>>>>> ',
- $val1, $val2, $val3;
+ formline ' + @<<<<<<<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<<<<<<<<<'
+ . ' @>>>>>>>>>>>>>> ', $val1, $val2, $val3;
+ my $formatted = $^A;
+ $^A = '';
+ return $formatted;
+}
+
+sub _prettify_stats {
+ my ( $val1, $val2 ) = @_;
+ formline ' + @<<<<<<<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<<<<<<<<< ',
+ $val1, $val2;
my $formatted = $^A;
$^A = '';
return $formatted;