File Coverage

blib/lib/Plack/Middleware/ConsoleLogger.pm
Criterion Covered Total %
statement 48 49 97.9
branch 8 14 57.1
condition n/a
subroutine 10 10 100.0
pod 1 2 50.0
total 67 75 89.3


line stmt bran cond sub pod time code
1             package Plack::Middleware::ConsoleLogger;
2 3     3   34254 use strict;
  3         10  
  3         151  
3 3     3   1196 use parent qw(Plack::Middleware);
  3         480  
  3         20  
4 3     3   23531 use Plack::Util::Accessor qw(group);
  3         13  
  3         24  
5              
6 3     3   206 use 5.008001;
  3         11  
  3         170  
7             our $VERSION = '0.04';
8              
9 3     3   4550 use JavaScript::Value::Escape;
  3         2367  
  3         1637  
10              
11             sub call {
12 2     2 1 67201 my($self, $env) = @_;
13              
14 2         6 my @logs;
15             $env->{'psgix.logger'} = sub {
16 5     5   242 my $args = shift;
17 5         16 push @logs, $args;
18             # TODO cascade?
19 2         13 };
20              
21             $self->response_cb($self->app->($env), sub {
22 2     2   72 my $res = shift;
23              
24 2 50       15 if (Plack::Util::header_get($res->[1], 'Content-Type') =~ /html/) {
25             return sub {
26 4         77 my $chunk = shift;
27 4 100       14 return unless defined $chunk;
28 2         17 $chunk =~ s!!$self->generate_js(\@logs) . ""!ei;
  2         12  
29 2         9 return $chunk;
30 2         75 };
31             }
32 2         44 });
33             }
34              
35             sub generate_js {
36 2     2 0 5 my($self, $logs) = @_;
37              
38 2         4 my $js = q(";
52 2         9 $js;
53             }
54              
55             sub _validate_level {
56 5     5   8 my ($self, $level) = @_;
57 5 50       20 return "debug" if !$level;
58 5 50       9 if (grep {/$level/} (qw/warn debug error info fatal/)) {
  25         88  
59 5         10 return $level;
60             }else{
61 0           return "debug";
62             }
63             }
64              
65             1;
66              
67             __END__