File Coverage

blib/lib/Plack/Middleware/FirePHP.pm
Criterion Covered Total %
statement 16 18 88.8
branch n/a
condition n/a
subroutine 6 6 100.0
pod n/a
total 22 24 91.6


line stmt bran cond sub pod time code
1             package Plack::Middleware::FirePHP;
2              
3 2     2   1507 use 5.008;
  2         8  
  2         70  
4 2     2   10 use strict;
  2         3  
  2         60  
5 2     2   20 use warnings;
  2         3  
  2         107  
6              
7             our $VERSION = '0.01';
8              
9 2     2   1654 use Plack::Response;
  2         9224  
  2         57  
10 2     2   11 use Plack::Util;
  2         5  
  2         36  
11 2     2   1092 use FirePHP::Dispatcher;
  0            
  0            
12             use Plack::Util::Accessor qw/disabled/;
13              
14             use base 'Plack::Middleware';
15              
16             sub call {
17             my $self = shift;
18             my $env = shift;
19              
20             if (defined $self->disabled && $self->disabled) {
21             require Class::Null;
22             $env->{'plack.fire_php'} = Class::Null->new;
23             } else {
24             require FirePHP::Dispatcher;
25             $env->{'plack.fire_php'} =
26             FirePHP::Dispatcher->new(Plack::Response->new->headers);
27             }
28              
29             my $res = $self->app->($env);
30             $env->{'plack.fire_php'}->finalize;
31              
32             $self->response_cb($res, sub {
33             my $res = Plack::Response->new(@{$_[0]});
34             $res->headers->push_header(
35             %{$env->{'plack.fire_php'}->{http_headers}}
36             );
37             @{$_[0]} = @{$res->finalize};
38             });
39             }
40              
41             1;
42              
43             __END__