File Coverage

blib/lib/HTTP/AnyUA/Middleware/RequestHeaders.pm
Criterion Covered Total %
statement 28 28 100.0
branch 2 2 100.0
condition n/a
subroutine 8 8 100.0
pod 4 4 100.0
total 42 42 100.0


line stmt bran cond sub pod time code
1             package HTTP::AnyUA::Middleware::RequestHeaders;
2             # ABSTRACT: Middleware to add custom request headers
3              
4              
5 1     1   471 use warnings;
  1         2  
  1         32  
6 1     1   5 use strict;
  1         2  
  1         33  
7              
8             our $VERSION = '0.904'; # VERSION
9              
10 1     1   5 use parent 'HTTP::AnyUA::Middleware';
  1         2  
  1         4  
11              
12 1     1   43 use HTTP::AnyUA::Util;
  1         2  
  1         207  
13              
14              
15             sub init {
16 2     2 1 3 my $self = shift;
17 2         7 my %args = @_;
18 2         8 $self->{override} = !!$args{override};
19 2         7 $self->{headers} = HTTP::AnyUA::Util::normalize_headers($args{headers});
20             }
21              
22             sub request {
23 3     3 1 5 my $self = shift;
24 3         6 my ($method, $url, $args) = @_;
25              
26 3 100       6 if ($self->override) {
27             $args->{headers} = {
28 1         4 %{HTTP::AnyUA::Util::normalize_headers($args->{headers})},
29 1         1 %{$self->headers},
  1         3  
30             };
31             }
32             else {
33             $args->{headers} = {
34 2         4 %{$self->headers},
35 2         2 %{HTTP::AnyUA::Util::normalize_headers($args->{headers})},
  2         6  
36             };
37             }
38              
39 3         11 return $self->backend->request($method, $url, $args);
40             }
41              
42              
43 3     3 1 9 sub headers { shift->{headers} }
44              
45              
46 3     3 1 10 sub override { shift->{override} }
47              
48             1;
49              
50             __END__