X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FEngine.pm;h=969021b5d7d5c067552dee1d7a51eb86964f1253;hb=d41516b29b729ba98759cc98b0ad38a47bad9aa5;hp=8968128834def8259acad48bfc4399e1e2903337;hpb=92a3f2c99c49d32ada1bf0106ae324f92e795a43;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Engine.pm b/lib/Catalyst/Engine.pm index 8968128..969021b 100644 --- a/lib/Catalyst/Engine.pm +++ b/lib/Catalyst/Engine.pm @@ -357,8 +357,10 @@ sub handler ($$) { # Always expect worst case! my $status = -1; eval { + my @stats = (); my $handler = sub { - my $c = $class->prepare($r); + my $c = $class->prepare($r); + $c->{stats} = \@stats; my $action = $c->req->action; my $namespace = ''; $namespace = ( join( '/', @{ $c->req->args } ) || '/' ) @@ -400,7 +402,7 @@ sub handler ($$) { ( $elapsed, $status ) = $class->benchmark($handler); $elapsed = sprintf '%f', $elapsed; my $av = sprintf '%.3f', 1 / $elapsed; - $class->log->info( "Request took $elapsed" . "s ($av/s)" ); + $class->log->info( "Request took $elapsed" . "s ($av/s)", @stats ); } else { $status = &$handler } }; @@ -464,9 +466,9 @@ sub prepare { 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', @params ); + $c->log->debug( 'Parameters are', @params ); } $c->prepare_uploads; return $c; @@ -586,11 +588,12 @@ sub execute { eval { if ( $c->debug ) { - my $action = $c->actions->{reverse}->{"$code"} || "$code"; + my $action = $c->actions->{reverse}->{"$code"}; + $action = "/$action" unless $action =~ /\-\>/; my ( $elapsed, @state ) = $c->benchmark( $code, $class, $c, @{ $c->req->args } ); - $c->log->info( sprintf qq/Processing "$action" took %fs/, $elapsed ) - if $c->debug; + push @{ $c->{stats} }, + _prettify( $action, '', sprintf( '%fs', $elapsed ) ); $c->state(@state); } else { $c->state( &$code( $class, $c, @{ $c->req->args } ) ) } @@ -682,7 +685,7 @@ sub set_action { if ( $flags{regex} =~ /^"(.*)"$/ ) { $flags{regex} = $1 } } - my $reverse = $prefix ? "$method ($prefix)" : $method; + my $reverse = $prefix ? "$prefix/$method" : $method; if ( $flags{local} || $flags{global} || $flags{path} ) { my $path = $flags{path} || $method; @@ -788,7 +791,7 @@ sub setup_components { $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; @@ -808,13 +811,13 @@ sub setup_components { $walker->( $walker, $self->tree, \@messages, '' ); $self->log->debug(@messages) if ( $#messages && $self->debug ); @messages = ('Loaded plain actions'); - for my $plain ( keys %{ $actions->{plain} } ) { + for my $plain ( sort keys %{ $actions->{plain} } ) { my ( $class, $code ) = @{ $actions->{plain}->{$plain} }; push @messages, _prettify( "/$plain", $class, $code ); } $self->log->debug(@messages) if ( $#messages && $self->debug ); @messages = ('Loaded regex actions'); - for my $regex ( keys %{ $actions->{regex} } ) { + for my $regex ( sort keys %{ $actions->{regex} } ) { my ( $class, $code ) = @{ $actions->{regex}->{$regex} }; push @messages, _prettify( $regex, $class, $code ); } @@ -859,10 +862,10 @@ sub _class2prefix { } sub _prettify { - my ( $action, $class, $code ) = @_; + my ( $val1, $val2, $val3 ) = @_; formline -' @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @|||||||||||||| ', - $action, $class, $code; +' @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<<<<<<<<< @>>>>>>>>>>>>>> ', + $val1, $val2, $val3; my $formatted = $^A; $^A = ''; return $formatted;