X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FStats.pm;h=46b5ed4a0ab9015014580a2fe68bb32582aa4222;hb=2efad04b4d6590ecf00566d698e94622198909aa;hp=247e1bd8d03cefb0a6ca120ff4c04e8b7b77166d;hpb=025703186d05624d36984961c75a1e138eaed850;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Stats.pm b/lib/Catalyst/Stats.pm index 247e1bd..46b5ed4 100644 --- a/lib/Catalyst/Stats.pm +++ b/lib/Catalyst/Stats.pm @@ -3,9 +3,12 @@ package Catalyst::Stats; use Moose; use Time::HiRes qw/gettimeofday tv_interval/; use Text::SimpleTable (); +use Catalyst::Utils; use Tree::Simple qw/use_weak_refs/; use Tree::Simple::Visitor::FindByUID; +use namespace::clean -except => 'meta'; + has enable => (is => 'rw', required => 1, default => sub{ 1 }); has tree => ( is => 'ro', @@ -88,7 +91,8 @@ sub elapsed { sub report { my $self = shift; - my $t = Text::SimpleTable->new( [ 62, 'Action' ], [ 9, 'Time' ] ); + my $column_width = Catalyst::Utils::term_width() - 9 - 13; + my $t = Text::SimpleTable->new( [ $column_width, 'Action' ], [ 9, 'Time' ] ); my @results; $self->traverse( sub { @@ -117,7 +121,7 @@ sub _get_uid { $visitor->searchForUID($uid); $self->accept($visitor); return $visitor->getResult; -} +} sub addChild { my $self = shift; @@ -152,7 +156,6 @@ sub getNodeValue { $self->tree->getNodeValue( @_ )->{ t }; } -no Moose; __PACKAGE__->meta->make_immutable(); 1; @@ -203,7 +206,7 @@ be like this: $c->stats->profile("completed second part of critical bit"); # more code ... - $c->stats->profile(end => "mysub"); + $c->stats->profile(end => "mysub"); } Supposing mysub was called from the action "process" inside a Catalyst @@ -230,7 +233,7 @@ part 0.111s. =head2 new -Constructor. +Constructor. $stats = Catalyst::Stats->new; @@ -249,7 +252,7 @@ Enable or disable stats collection. By default, stats are enabled after object Marks a profiling point. These can appear in pairs, to time the block of code between the begin/end pairs, or by themselves, in which case the time of -execution to the previous profiling point will be reported. +execution to the previous profiling point will be reported. The argument may be either a single comment string or a list of name-value pairs. Thus the following are equivalent: @@ -322,10 +325,10 @@ from the previous profiling point. The 'rollup' flag indicates whether the reported time is the rolled up time for the block, or the elapsed time from the previous profiling point. -=head1 COMPATABILITY METHODS +=head1 COMPATIBILITY METHODS Some components might expect the stats object to be a regular Tree::Simple object. -We've added some compatability methods to handle this scenario: +We've added some compatibility methods to handle this scenario: =head2 accept @@ -347,7 +350,7 @@ Catalyst Contributors, see Catalyst.pm =head1 COPYRIGHT -This program is free software, you can redistribute it and/or modify +This library is free software. You can redistribute it and/or modify it under the same terms as Perl itself. =cut