File Coverage

blib/lib/WWW/PTV/Area.pm
Criterion Covered Total %
statement 6 43 13.9
branch 0 6 0.0
condition n/a
subroutine 2 12 16.6
pod 9 10 90.0
total 17 71 23.9


line stmt bran cond sub pod time code
1             package WWW::PTV::Area;
2              
3 1     1   7 use strict;
  1         2  
  1         54  
4 1     1   5 use warnings;
  1         2  
  1         945  
5              
6             our $VERSION = '0.05';
7              
8             sub new {
9 0     0 0   my ($class, %args) = @_;
10 0           my $self = bless {}, $class;
11 0           $self->{id} = $args{id};
12 0           $self->{name} = $args{name};
13 0           $self->{suburbs}= $args{suburbs};
14 0           $self->{service}= $args{service};
15 0           return $self
16             }
17              
18             sub id {
19 0     0 1   return $_[0]->{id}
20             }
21              
22             sub name {
23 0     0 1   return $_[0]->{name}
24             }
25              
26             sub suburbs {
27 0     0 1   return $_[0]->{suburbs}
28             }
29              
30             sub towns {
31 0     0 1   $_[0]->suburbs
32             }
33              
34             sub service_types {
35 0     0 1   return keys %{ $_[0]->{service}{names} }
  0            
36             }
37              
38             sub service_names {
39 0     0 1   return $_[0]->{service}{names}
40             }
41              
42             sub service_links {
43 0     0 1   return $_[0]->{service}{links}
44             }
45              
46             sub services {
47 0     0 1   my $self = shift;
48 0           my @res;
49 0           my $service_names = $self->service_names;
50 0           my $service_links = $self->service_links;
51              
52             # { name => 'Name', link => 'link', type => 'Type' }
53 0           foreach my $type ( $self->service_types ) {
54 0           my $c = 0;
55 0           my $r;
56              
57 0           foreach my $service ( @{ $service_names->{$type} } ) {
  0            
58 0           my $r = { type => $type,
59 0           name => @{ $service_names->{ $type } }[ $c ],
60 0           link => @{ $service_links->{ $type } }[ $c ] };
61 0           push @res, $r;
62 0           $c++;
63             }
64             }
65              
66 0           return @res;
67             }
68              
69             sub services_like {
70 0     0 1   my ( $self, %args ) = @_;
71 0 0         $args{type} or return grep { $_->{name} =~ /$args{name}/i } $self->services;
  0            
72 0 0         $args{name} or return grep { $_->{type} =~ /$args{type}/i } $self->services;
  0            
73              
74 0 0         return grep { $_->{type} =~ /$args{type}/i
  0            
75             and $_->{name} =~ /$args{name}/i
76             } $self->services
77             }
78              
79             1;
80              
81             __END__