File Coverage

blib/lib/Plack/Middleware/Debug/Timer.pm
Criterion Covered Total %
statement 25 25 100.0
branch n/a
condition n/a
subroutine 8 8 100.0
pod 1 2 50.0
total 34 35 97.1


line stmt bran cond sub pod time code
1             package Plack::Middleware::Debug::Timer;
2 2     2   923 use 5.008;
  2         7  
3 2     2   11 use strict;
  2         4  
  2         47  
4 2     2   28 use warnings;
  2         5  
  2         66  
5 2     2   1036 use Time::HiRes;
  2         2696  
  2         10  
6              
7 2     2   291 use parent qw(Plack::Middleware::Debug::Base);
  2         7  
  2         12  
8             our $VERSION = '0.17';
9              
10             sub run {
11 3     3 1 11 my($self, $env, $panel) = @_;
12              
13 3         37 my $start = [ Time::HiRes::gettimeofday ];
14              
15             return sub {
16 3     3   15 my $res = shift;
17              
18 3         26 my $end = [ Time::HiRes::gettimeofday ];
19 3         64 my $elapsed = sprintf '%.6f s', Time::HiRes::tv_interval $start, $end;
20              
21 3         186 $panel->nav_subtitle($elapsed);
22 3         44 $panel->content(
23             $self->render_list_pairs(
24             [ Start => $self->format_time($start),
25             End => $self->format_time($end),
26             Elapsed => $elapsed ],
27             ),
28             );
29 3         46 };
30             }
31              
32             sub format_time {
33 6     6 0 20 my ($self, $time) = @_;
34 6         191 my ($sec, $min, $hour, $mday, $mon, $year) = (localtime($time->[0]));
35 6         124 sprintf "%04d.%02d.%02d %02d:%02d:%02d.%d", $year + 1900, $mon + 1, $mday,
36             $hour, $min, $sec, $time->[1];
37             }
38              
39             1;
40             __END__