File Coverage

blib/lib/Net/Google/Analytics/Request.pm
Criterion Covered Total %
statement 23 23 100.0
branch 5 6 83.3
condition 1 3 33.3
subroutine 4 4 100.0
pod n/a
total 33 36 91.6


line stmt bran cond sub pod time code
1             package Net::Google::Analytics::Request;
2             $Net::Google::Analytics::Request::VERSION = '3.04';
3 2     2   10 use strict;
  2         6  
  2         59  
4 2     2   11 use warnings;
  2         3  
  2         119  
5              
6             # ABSTRACT: Google Analytics API request
7              
8             use Class::XSAccessor
9 2         22 accessors => [ qw(
10             realtime
11             ids
12             start_date end_date
13             metrics dimensions
14             sort
15             filters
16             segment
17             start_index max_results
18             fields
19             sampling_level
20             pretty_print
21             user_ip quota_user
22             ) ],
23 2     2   1482 constructor => 'new';
  2         6444  
24              
25             my @param_map = (
26             ids => 'ids',
27             start_date => 'start-date',
28             end_date => 'end-date',
29             metrics => 'metrics',
30             dimensions => 'dimensions',
31             sort => 'sort',
32             filters => 'filters',
33             segment => 'segment',
34             fields => 'fields',
35             sampling_level => 'samplingLevel',
36             pretty_print => 'prettyPrint',
37             user_ip => 'userIp',
38             quota_user => 'quotaUser',
39             );
40              
41             sub _params {
42 2     2   6 my $self = shift;
43              
44 2         8 my @required = qw(ids metrics);
45              
46 2 100       23 if (!$self->{realtime}) {
47 1         4 push(@required, qw(start_date end_date));
48             }
49              
50 2         8 for my $name (@required) {
51 6         17 my $value = $self->{$name};
52 6 50 33     52 die("parameter $name is empty")
53             if !defined($value) || $value eq '';
54             }
55              
56 2         8 my @params;
57              
58 2         13 for (my $i=0; $i<@param_map; $i+=2) {
59 26         46 my $from = $param_map[$i];
60 26         46 my $to = $param_map[$i+1];
61              
62 26         42 my $value = $self->{$from};
63 26 100       108 push(@params, $to => $value) if defined($value);
64             }
65              
66 2         28 return @params;
67             }
68              
69             1;
70              
71             __END__