File Coverage

blib/lib/HTTP/MobileAgent/Request.pm
Criterion Covered Total %
statement 16 16 100.0
branch 6 6 100.0
condition n/a
subroutine 5 5 100.0
pod 0 1 0.0
total 27 28 96.4


line stmt bran cond sub pod time code
1             package HTTP::MobileAgent::Request;
2 10     10   53 use strict;
  10         14  
  10         2735  
3              
4             sub new {
5 575     575 0 655 my($class, $stuff) = @_;
6 575 100       1565 if (!defined $stuff) {
    100          
    100          
7 526         1888 bless { env => \%ENV }, 'HTTP::MobileAgent::Request::Env';
8             }
9             elsif (UNIVERSAL::isa($stuff, 'Apache')) {
10 1         6 bless { r => $stuff }, 'HTTP::MobileAgent::Request::Apache';
11             }
12             elsif (UNIVERSAL::isa($stuff, 'HTTP::Headers')) {
13 1         5 bless { r => $stuff }, 'HTTP::MobileAgent::Request::HTTPHeaders';
14             }
15             else {
16 47         387 bless { env => { HTTP_USER_AGENT => $stuff } }, 'HTTP::MobileAgent::Request::Env';
17             }
18             }
19              
20             package HTTP::MobileAgent::Request::Env;
21              
22             sub get {
23 1535     1535   1539 my($self, $header) = @_;
24 1535         1542 $header =~ tr/-/_/;
25 1535         5702 return $self->{env}->{"HTTP_" . uc($header)};
26             }
27              
28             package HTTP::MobileAgent::Request::Apache;
29              
30             sub get {
31 3     3   3 my($self, $header) = @_;
32 3         9 return $self->{r}->header_in($header);
33             }
34              
35             package HTTP::MobileAgent::Request::HTTPHeaders;
36              
37             sub get {
38 3     3   4 my($self, $header) = @_;
39 3         12 return $self->{r}->header($header);
40             }
41              
42             1;