File Coverage

blib/lib/WebService/Geocodio/Fields.pm
Criterion Covered Total %
statement 72 93 77.4
branch 0 24 0.0
condition n/a
subroutine 24 27 88.8
pod 0 3 0.0
total 96 147 65.3


line stmt bran cond sub pod time code
1 7     7   34 use strict;
  7         12  
  7         192  
2 7     7   33 use warnings;
  7         11  
  7         325  
3              
4             {
5             package WebService::Geocodio::Fields::CongressionalDistrict;
6             {
7             $WebService::Geocodio::Fields::CongressionalDistrict::VERSION = '0.04';
8             }
9              
10 7     7   963 use Moo::Lax;
  7         21076  
  7         67  
11              
12             has [qw(name district_number congress_number congress_years)] => (
13             is => 'ro',
14             );
15              
16             }
17              
18             ################## State Legislative Districts
19              
20             {
21             package WebService::Geocodio::Fields::StateLegislativeDistrict::House;
22             {
23             $WebService::Geocodio::Fields::StateLegislativeDistrict::House::VERSION = '0.04';
24             }
25 7     7   7202 use Moo::Lax;
  7         12  
  7         30  
26              
27             has [qw(name district_number)] => (
28             is => 'ro',
29             );
30             }
31              
32             {
33             package WebService::Geocodio::Fields::StateLegislativeDistrict::Senate;
34             {
35             $WebService::Geocodio::Fields::StateLegislativeDistrict::Senate::VERSION = '0.04';
36             }
37 7     7   10751 use Moo::Lax;
  7         13  
  7         23  
38              
39             has [qw(name district_number)] => (
40             is => 'ro',
41             );
42             }
43              
44             {
45              
46             package WebService::Geocodio::Fields::StateLegislativeDistrict;
47             {
48             $WebService::Geocodio::Fields::StateLegislativeDistrict::VERSION = '0.04';
49             }
50              
51 7     7   4543 use WebService::Geocodio::Fields::StateLegislativeDistrict::House;
  7         13  
  7         201  
52 7     7   36 use WebService::Geocodio::Fields::StateLegislativeDistrict::Senate;
  7         12  
  7         241  
53              
54 7     7   36 use Moo::Lax;
  7         13  
  7         29  
55 7     7   4315 use Carp qw(confess);
  7         17  
  7         1621  
56              
57             has [qw(house senate)] => (
58             is => 'ro',
59             predicate => 1,
60             );
61              
62             sub BUILDARGS {
63 0     0 0   my ($class, $hr) = @_;
64              
65 0 0         confess "$class only accepts hashrefs in its constructor" unless ( ref($hr) eq 'HASH' );
66              
67 0           my $out;
68              
69 0 0         $out->{house} = WebService::Geocodio::Fields::StateLegislativeDistrict::House->new(
70             $hr->{house}) if exists $hr->{house};
71 0 0         $out->{senate} = WebService::Geocodio::Fields::StateLegislativeDistrict::Senate->new(
72             $hr->{senate}) if exists $hr->{senate};
73              
74 0           return $out;
75             }
76              
77             }
78              
79             ############### School districts
80              
81             {
82             package WebService::Geocodio::Fields::SchoolDistrict::Unified;
83             {
84             $WebService::Geocodio::Fields::SchoolDistrict::Unified::VERSION = '0.04';
85             }
86 7     7   36 use Moo::Lax;
  7         12  
  7         64  
87              
88             has [qw(name lea_code grade_low grade_high)] => (
89             is => 'ro',
90             );
91             }
92              
93             {
94             package WebService::Geocodio::Fields::SchoolDistrict::Elementary;
95             {
96             $WebService::Geocodio::Fields::SchoolDistrict::Elementary::VERSION = '0.04';
97             }
98 7     7   4493 use Moo::Lax;
  7         15  
  7         28  
99              
100             has [qw(name lea_code grade_low grade_high)] => (
101             is => 'ro',
102             );
103             }
104              
105             {
106             package WebService::Geocodio::Fields::SchoolDistrict::Secondary;
107             {
108             $WebService::Geocodio::Fields::SchoolDistrict::Secondary::VERSION = '0.04';
109             }
110 7     7   4529 use Moo::Lax;
  7         16  
  7         31  
111              
112             has [qw(name lea_code grade_low grade_high)] => (
113             is => 'ro',
114             );
115             }
116              
117             {
118              
119             package WebService::Geocodio::Fields::SchoolDistrict;
120             {
121             $WebService::Geocodio::Fields::SchoolDistrict::VERSION = '0.04';
122             }
123              
124 7     7   4788 use WebService::Geocodio::Fields::SchoolDistrict::Unified;
  7         15  
  7         236  
125 7     7   37 use WebService::Geocodio::Fields::SchoolDistrict::Elementary;
  7         11  
  7         206  
126 7     7   35 use WebService::Geocodio::Fields::SchoolDistrict::Secondary;
  7         1275  
  7         159  
127              
128 7     7   133 use Moo::Lax;
  7         11  
  7         37  
129 7     7   4095 use Carp qw(confess);
  7         14  
  7         1610  
130              
131             has [qw(unified elementary secondary)] => (
132             is => 'ro',
133             predicate => 1,
134             );
135              
136             sub BUILDARGS {
137 0     0 0   my ($class, $hr) = @_;
138              
139 0 0         confess "$class only accepts hashrefs in its constructor" unless ( ref($hr) eq 'HASH' );
140              
141 0           my $out;
142              
143 0 0         $out->{unified} = WebService::Geocodio::Fields::SchoolDistrict::Unified->new(
144             $hr->{unified}) if exists $hr->{unified};
145 0 0         $out->{elementary} = WebService::Geocodio::Fields::SchoolDistrict::Elementary->new(
146             $hr->{elementary}) if exists $hr->{elementary};
147 0 0         $out->{secondary} = WebService::Geocodio::Fields::SchoolDistrict::Secondary->new(
148             $hr->{secondary}) if exists $hr->{secondary};
149              
150 0           return $out;
151             }
152             }
153              
154             ############################ Timezone
155              
156             {
157             package WebService::Geocodio::Fields::Timezone;
158             {
159             $WebService::Geocodio::Fields::Timezone::VERSION = '0.04';
160             }
161 7     7   37 use Moo::Lax;
  7         11  
  7         28  
162              
163             has [qw(name utc_offset observes_dst)] => (
164             is => 'ro',
165             );
166             }
167              
168             package WebService::Geocodio::Fields;
169             {
170             $WebService::Geocodio::Fields::VERSION = '0.04';
171             }
172              
173 7     7   4354 use WebService::Geocodio::Fields::CongressionalDistrict;
  7         10  
  7         159  
174 7     7   48 use WebService::Geocodio::Fields::StateLegislativeDistrict;
  7         12  
  7         181  
175 7     7   33 use WebService::Geocodio::Fields::SchoolDistrict;
  7         7  
  7         173  
176 7     7   32 use WebService::Geocodio::Fields::Timezone;
  7         16  
  7         177  
177              
178 7     7   34 use Moo::Lax;
  7         11  
  7         27  
179 7     7   4164 use Carp qw(confess);
  7         12  
  7         2050  
180              
181             has [qw(cd stateleg school timezone)] => (
182             is => 'rw',
183             predicate => 1,
184             );
185              
186             sub BUILDARGS {
187 0     0 0   my ( $class, $hr ) = @_;
188              
189 0 0         confess "$class only accepts hashrefs in its constructor" unless ( ref($hr) eq 'HASH' );
190              
191 0           my $out;
192              
193 0 0         $out->{cd} = WebService::Geocodio::Fields::CongressionalDistrict->new(
194             $hr->{congressional_district}) if exists $hr->{congressional_district};
195 0 0         $out->{stateleg} = WebService::Geocodio::Fields::StateLegislativeDistrict->new(
196             $hr->{state_legislative_districts}) if exists $hr->{state_legislative_districts};
197 0 0         $out->{school} = WebService::Geocodio::Fields::SchoolDistrict->new(
198             $hr->{school_districts}) if exists $hr->{school_districts};
199 0 0         $out->{timezone} = WebService::Geocodio::Fields::Timezone->new($hr->{timezone})
200             if exists $hr->{timezone};
201              
202 0           return $out;
203             }
204              
205             1;
206              
207             __END__