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;
has tree => (
is => 'ro',
required => 1,
- default => sub{ Tree::Simple->new({t => [gettimeofday]}) }
+ default => sub{ Tree::Simple->new({t => [gettimeofday]}) },
+ handles => [qw/ accept traverse /],
);
has stack => (
is => 'ro',
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->tree->traverse(
+ $self->traverse(
sub {
my $action = shift;
my $stat = $action->getNodeValue;
my $visitor = Tree::Simple::Visitor::FindByUID->new;
$visitor->searchForUID($uid);
- $self->tree->accept($visitor);
+ $self->accept($visitor);
return $visitor->getResult;
}
-sub accept {
- my $self = shift;
- $self->{tree}->accept( @_ );
-}
-
sub addChild {
my $self = shift;
my $node = $_[ 0 ];
$stat->{ elapsed } =~ s{s$}{};
}
- $self->{tree}->addChild( @_ );
+ $self->tree->addChild( @_ );
}
sub setNodeValue {
$stat->{ elapsed } =~ s{s$}{};
}
- $self->{tree}->setNodeValue( @_ );
+ $self->tree->setNodeValue( @_ );
}
sub getNodeValue {
my $self = shift;
- $self->{tree}->getNodeValue( @_ )->{ t };
-}
-
-sub traverse {
- my $self = shift;
- $self->{tree}->traverse( @_ );
+ $self->tree->getNodeValue( @_ )->{ t };
}
no Moose;