sweeter statistics
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Engine.pm
index 21e0da2..d46fb31 100644 (file)
@@ -358,7 +358,8 @@ sub handler ($$) {
     my $status = -1;
     eval {
         my $handler = sub {
-            my $c         = $class->prepare($r);
+            my $c = $class->prepare($r);
+            $c->{stats} = [];
             my $action    = $c->req->action;
             my $namespace = '';
             $namespace = ( join( '/', @{ $c->req->args } ) || '/' )
@@ -384,6 +385,9 @@ sub handler ($$) {
                 {
                     $c->state( $c->execute( @{ $end->[0] } ) );
                 }
+                my @stats = @{ $c->{stats} };
+                $c->log->debug( 'Processed', @stats )
+                  if ( @stats && $c->debug );
             }
             else {
                 my $path  = $c->req->path;
@@ -464,9 +468,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 are', @params );
+        $c->log->debug( 'Parameters', @params );
     }
     $c->prepare_uploads;
     return $c;
@@ -586,11 +590,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 +687,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;
@@ -787,7 +792,8 @@ sub setup_components {
         $self->components->{ ref $comp } = $comp;
         $self->setup_actions($comp);
     }
-    my @comps = keys %{ $self->components };
+    my @comps;
+    push @comps, " $_" for keys %{ $self->components };
     $self->log->debug( 'Loaded components', @comps )
       if ( @comps && $self->debug );
     my $actions  = $self->actions;
@@ -799,7 +805,7 @@ sub setup_components {
         my $uid = $parent->getUID;
         for my $action ( keys %{ $actions->{private}->{$uid} } ) {
             my ( $class, $code ) = @{ $actions->{private}->{$uid}->{$action} };
-            push @$messages, qq/"$prefix$action" in "$class" as "$code"/;
+            push @$messages, _prettify( "$prefix$action", $class, $code );
         }
         $walker->( $walker, $_, $messages, $prefix )
           for $parent->getAllChildren;
@@ -807,15 +813,15 @@ 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, qq|"/$plain" in "$class" as "$code"|;
+        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, qq|"$regex" in "$class" as "$code"|;
+        push @messages, _prettify( $regex, $class, $code );
     }
     $self->log->debug(@messages) if ( $#messages && $self->debug );
 }
@@ -857,6 +863,16 @@ sub _class2prefix {
     return $prefix;
 }
 
+sub _prettify {
+    my ( $val1, $val2, $val3 ) = @_;
+    formline
+' @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @>>>>>>>>>>>>>> ',
+      $val1, $val2, $val3;
+    my $formatted = $^A;
+    $^A = '';
+    return $formatted;
+}
+
 =back
 
 =head1 AUTHOR