File Coverage

blib/lib/Geography/Country/TZ.pm
Criterion Covered Total %
statement 6 25 24.0
branch 0 4 0.0
condition 0 6 0.0
subroutine 3 5 60.0
pod 0 3 0.0
total 9 43 20.9


line stmt bran cond sub pod time code
1             package Geography::Country::TZ;
2 3     3   5169 use Geography::Country::TZ::Zone;
  3         10  
  3         786  
3              
4             require Exporter;
5             @ISA = qw(Exporter);
6             @EXPORT_OK = qw(areas areas_dmy from_iso);
7              
8             BEGIN {
9 3     3   8 eval { require Net::Country;
  3         2465  
10 0         0 %country = %Net::Country::country;
11 0         0 @country{keys %country} = map {s/\s*\(.*\)\s*$//; lc($_);} values %country;
  0         0  
  0         0  
12 0         0 %cross = reverse %country;
13             };
14             }
15              
16             while () {
17             chop;
18             ($cn, $geo, $tz) = split(/\s+/);
19             $hash{$cn} ||= [];
20             push(@{$hash{$cn}}, $tz);
21             }
22              
23             sub from_iso {
24 1     1 0 7 $cross{lc($_[0])};
25             }
26              
27             sub areas {
28 0     0 0   my $cn = uc(shift);
29 0   0       my $areas = $hash{$cn} || $hash{from_iso($cn)};
30 0 0         return undef unless ($areas);
31 0           my @areas = @$areas;
32 0           sort {$a <=> $b} map {Geography::Country::TZ::Zone::getoffset($_);}
  0            
  0            
33             @areas;
34             }
35              
36             sub areas_dmy {
37 0     0 0   my $cn = uc(shift);
38 0   0       my $areas = $hash{$cn} || $hash{$cross{$cn}};
39 0 0         return undef unless ($areas);
40 0           my @areas = @$areas;
41 0           sort {$a <=> $b} map {Geography::Country::TZ::Zone::getpastoffset($_, @_);}
  0            
  0            
42             @areas;
43             }
44              
45             1;
46              
47             __DATA__