govkit-ca 0.0.14 → 0.0.15
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +17 -6
- data/lib/gov_kit-ca.rb +0 -1
- data/lib/gov_kit-ca/represent.rb +2 -2
- data/lib/gov_kit-ca/version.rb +1 -1
- data/spec/represent_spec.rb +53 -205
- data/spec/spec_helper.rb +9 -14
- data/spec/strategy_set_spec.rb +0 -1
- data/spec/support/shared_examples_for_represent.rb +118 -0
- metadata +4 -6
- data/lib/gov_kit-ca/postal_code/strategy/cbc_ca.rb +0 -31
- data/lib/rid_to_edid.yml +0 -309
- data/spec/cbc_ca_spec.rb +0 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2051edb2b22dbfb63480ac487f4fe82c4cd5f7f1
|
4
|
+
data.tar.gz: 762e642d14e7869f88ea766eaf33d8ca2b64442a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8ac0daf7e97e39bdf8f6eff4bdb3d3611c55604fc980570558ffeb59c0bec4ba24dd2207ebe58fef4565159978d23e25d16feeb01f8f07f729e3413933d8f62b
|
7
|
+
data.tar.gz: d07c817b8b21b71559d1fd0e69ffd7edfd18875a4f461e9ec00d2d66b277ac633153292bbd44d946c1232d81f149d63565cf06c415a8c22cf0ac04172979a5c2
|
data/README.md
CHANGED
@@ -22,36 +22,48 @@ require 'govkit-ca'
|
|
22
22
|
client = GovKit::CA::Represent.new
|
23
23
|
```
|
24
24
|
|
25
|
-
Send a request to the [`/postcodes
|
25
|
+
Send a request to the [`/postcodes/` endpoint](https://represent.opennorth.ca/api/#postcode):
|
26
26
|
|
27
27
|
```ruby
|
28
28
|
client.postcodes('A1A1A1')
|
29
29
|
```
|
30
30
|
|
31
|
-
Send a request to the [`/representative-sets
|
31
|
+
Send a request to the [`/representative-sets/` endpoint](https://represent.opennorth.ca/api/#representativeset):
|
32
32
|
|
33
33
|
```ruby
|
34
34
|
client.representative_sets(limit: 0)
|
35
35
|
```
|
36
36
|
|
37
|
-
Send a request to the [`/representatives
|
37
|
+
Send a request to the [`/representatives/` endpoint](https://represent.opennorth.ca/api/#representative):
|
38
38
|
|
39
39
|
```ruby
|
40
40
|
client.representatives(representative_set: 'toronto-city-council')
|
41
41
|
```
|
42
42
|
|
43
|
-
Send a request to the [`/boundary-sets
|
43
|
+
Send a request to the [`/boundary-sets/` endpoint](https://represent.opennorth.ca/api/#boundaryset):
|
44
44
|
|
45
45
|
```ruby
|
46
46
|
client.boundary_sets(limit: 0)
|
47
47
|
```
|
48
48
|
|
49
|
-
Send a request to the [`/boundaries
|
49
|
+
Send a request to the [`/boundaries/` endpoint](https://represent.opennorth.ca/api/#boundary):
|
50
50
|
|
51
51
|
```ruby
|
52
52
|
client.boundaries(boundary_set: 'toronto-wards')
|
53
53
|
```
|
54
54
|
|
55
|
+
Send a request to the [`/elections/` endpoint](https://represent.opennorth.ca/api/#election):
|
56
|
+
|
57
|
+
```ruby
|
58
|
+
client.elections(limit: 0)
|
59
|
+
```
|
60
|
+
|
61
|
+
Send a request to the [`/candidates/` endpoint](https://represent.opennorth.ca/api/#candidate):
|
62
|
+
|
63
|
+
```ruby
|
64
|
+
client.candidates(election: 'house-of-commons')
|
65
|
+
```
|
66
|
+
|
55
67
|
Read the full documentation on [RubyDoc.info](http://rubydoc.info/gems/govkit-ca/GovKit/CA/Represent).
|
56
68
|
|
57
69
|
## Postal code to electoral district lookup
|
@@ -64,7 +76,6 @@ GovKit-CA provides an API for free postal code to electoral district lookups, us
|
|
64
76
|
* [greenparty.ca](http://www.greenparty.ca/)
|
65
77
|
* [liberal.ca](https://www.liberal.ca/)
|
66
78
|
* [ndp.ca](http://www.ndp.ca/)
|
67
|
-
* [cbc.ca](http://www.cbc.ca/)
|
68
79
|
* [digital-copyright.ca](http://www.digital-copyright.ca/)
|
69
80
|
|
70
81
|
These sources can be unstable or incorrect.
|
data/lib/gov_kit-ca.rb
CHANGED
@@ -17,7 +17,6 @@ end
|
|
17
17
|
require 'gov_kit-ca/postal_code'
|
18
18
|
require 'gov_kit-ca/postal_code/strategy_set'
|
19
19
|
require 'gov_kit-ca/postal_code/strategy/base'
|
20
|
-
require 'gov_kit-ca/postal_code/strategy/cbc_ca'
|
21
20
|
require 'gov_kit-ca/postal_code/strategy/conservative_ca'
|
22
21
|
require 'gov_kit-ca/postal_code/strategy/digital-copyright_ca'
|
23
22
|
require 'gov_kit-ca/postal_code/strategy/elections_ca'
|
data/lib/gov_kit-ca/represent.rb
CHANGED
@@ -106,7 +106,7 @@ module GovKit
|
|
106
106
|
# Get candidates.
|
107
107
|
#
|
108
108
|
# @param [Hash] opts optional arguments
|
109
|
-
# @option opts [String] :
|
109
|
+
# @option opts [String] :election an election
|
110
110
|
# @option opts [Array<Float>,String] :point a comma-separated latitude and longitude
|
111
111
|
# @option opts [Array<Strong>,String] :districts a comma-separated list of boundaries
|
112
112
|
# @option opts [Integer] :limit
|
@@ -119,7 +119,7 @@ module GovKit
|
|
119
119
|
if Array === opts[:districts]
|
120
120
|
opts[:districts] = opts[:districts].join(',')
|
121
121
|
end
|
122
|
-
request(['candidates', opts.delete(:
|
122
|
+
request(['candidates', opts.delete(:election)], opts)
|
123
123
|
end
|
124
124
|
|
125
125
|
private
|
data/lib/gov_kit-ca/version.rb
CHANGED
data/spec/represent_spec.rb
CHANGED
@@ -1,137 +1,45 @@
|
|
1
1
|
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
2
|
|
3
3
|
RSpec.describe GovKit::CA::Represent do
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
it 'should accept a custom connection' do
|
10
|
-
connection = Faraday.new do |connection|
|
11
|
-
connection.request :url_encoded
|
12
|
-
connection.adapter Faraday.default_adapter
|
13
|
-
end
|
14
|
-
expect{GovKit::CA::Represent.new(connection)}.to_not raise_error
|
15
|
-
end
|
16
|
-
|
17
|
-
it 'should return boundary sets' do
|
18
|
-
response = api.boundary_sets
|
19
|
-
expect(response).to be_a(Hash)
|
20
|
-
expect(response).to have_key('objects')
|
21
|
-
expect(response).to have_key('meta')
|
22
|
-
end
|
23
|
-
|
24
|
-
it 'should return a boundary set' do
|
25
|
-
response = api.boundary_sets(:boundary_set => 'federal-electoral-districts')
|
26
|
-
expect(response).to be_a(Hash)
|
27
|
-
expect(response).to have_key('related')
|
28
|
-
end
|
29
|
-
|
30
|
-
it 'should raise an error if the boundary set does not exist' do
|
31
|
-
expect{api.boundary_sets(:boundary_set => 'foo')}.to raise_error(GovKit::CA::ResourceNotFound, "404 https://represent.opennorth.ca/boundary-sets/foo/?")
|
32
|
-
end
|
33
|
-
|
34
|
-
it 'should raise an error if the limit is invalid' do
|
35
|
-
expect{api.boundary_sets(:limit => -1)}.to raise_error(GovKit::CA::InvalidRequest, "400 https://represent.opennorth.ca/boundary-sets/?limit=-1 Invalid limit '-1' provided. Please provide a positive integer >= 0.")
|
36
|
-
end
|
37
|
-
|
38
|
-
it 'should raise an error if the offset is invalid' do
|
39
|
-
expect{api.boundary_sets(:offset => -1)}.to raise_error(GovKit::CA::InvalidRequest, "400 https://represent.opennorth.ca/boundary-sets/?offset=-1 Invalid offset '-1' provided. Please provide a positive integer >= 0.")
|
4
|
+
it 'should accept a custom connection' do
|
5
|
+
connection = Faraday.new do |connection|
|
6
|
+
connection.request :url_encoded
|
7
|
+
connection.adapter Faraday.default_adapter
|
40
8
|
end
|
9
|
+
expect{GovKit::CA::Represent.new(connection)}.to_not raise_error
|
41
10
|
end
|
42
11
|
|
43
12
|
describe '#representative_sets' do
|
44
|
-
|
45
|
-
GovKit::CA::Represent.new
|
46
|
-
end
|
47
|
-
|
48
|
-
it 'should return representative sets' do
|
49
|
-
response = api.representative_sets
|
50
|
-
expect(response).to be_a(Hash)
|
51
|
-
expect(response).to have_key('objects')
|
52
|
-
expect(response).to have_key('meta')
|
53
|
-
end
|
54
|
-
|
55
|
-
it 'should return a representative set' do
|
56
|
-
response = api.representative_sets(:representative_set => 'house-of-commons')
|
57
|
-
expect(response).to be_a(Hash)
|
58
|
-
expect(response).to have_key('related')
|
59
|
-
end
|
60
|
-
|
61
|
-
it 'should raise an error if the representative set does not exist' do
|
62
|
-
expect{api.representative_sets(:representative_set => 'foo')}.to raise_error(GovKit::CA::ResourceNotFound, "404 https://represent.opennorth.ca/representative-sets/foo/?")
|
63
|
-
end
|
64
|
-
|
65
|
-
it 'should raise an error if the limit is invalid' do
|
66
|
-
expect{api.representative_sets(:limit => -1)}.to raise_error(GovKit::CA::InvalidRequest, "400 https://represent.opennorth.ca/representative-sets/?limit=-1 Invalid limit '-1' provided. Please provide a positive integer >= 0.")
|
67
|
-
end
|
68
|
-
|
69
|
-
it 'should raise an error if the offset is invalid' do
|
70
|
-
expect{api.representative_sets(:offset => -1)}.to raise_error(GovKit::CA::InvalidRequest, "400 https://represent.opennorth.ca/representative-sets/?offset=-1 Invalid offset '-1' provided. Please provide a positive integer >= 0.")
|
71
|
-
end
|
13
|
+
include_examples 'set', 'representative_sets', 'house-of-commons'
|
72
14
|
end
|
73
15
|
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
it 'should query by postal code' do
|
80
|
-
response = api.postcodes('A1A1A1')
|
81
|
-
expect(response).to be_a(Hash)
|
82
|
-
expect(response).to have_key('code')
|
83
|
-
end
|
16
|
+
# @note These tests will fail if the election is inactive.
|
17
|
+
describe '#elections' do
|
18
|
+
include_examples 'set', 'elections', 'house-of-commons'
|
19
|
+
end
|
84
20
|
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
expect((response['boundaries_centroid'] + response['boundaries_concordance']).size).to eq(2)
|
89
|
-
end
|
21
|
+
describe '#boundary_sets' do
|
22
|
+
include_examples 'set', 'boundary_sets', 'federal-electoral-districts'
|
23
|
+
end
|
90
24
|
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
expect((response['boundaries_centroid'] + response['boundaries_concordance']).size).to eq(2)
|
95
|
-
end
|
25
|
+
describe '#representatives' do
|
26
|
+
include_examples 'representative', 'representatives', 'st-johns-city-council', 11, :set => :representative_set, :point => :point
|
27
|
+
end
|
96
28
|
|
97
|
-
|
98
|
-
|
99
|
-
|
29
|
+
# @note These tests will fail if the election is inactive.
|
30
|
+
describe '#candidates' do
|
31
|
+
include_examples 'representative', 'candidates', 'house-of-commons', 20, :set => :election, :point => :point
|
100
32
|
end
|
101
33
|
|
102
34
|
describe '#boundaries' do
|
35
|
+
include_examples 'item', 'boundaries', 'st-johns-wards', 5, :set => :boundary_set, :point => :contains
|
36
|
+
|
103
37
|
let :api do
|
104
38
|
GovKit::CA::Represent.new
|
105
39
|
end
|
106
40
|
|
107
|
-
it 'should
|
108
|
-
|
109
|
-
expect(response).to be_a(Hash)
|
110
|
-
expect(response).to have_key('objects')
|
111
|
-
expect(response).to have_key('meta')
|
112
|
-
expect(response['meta']['next']).to_not be_nil
|
113
|
-
end
|
114
|
-
|
115
|
-
it 'should return boundaries from a boundary set' do
|
116
|
-
response = api.boundaries(:boundary_set => 'st-johns-wards')
|
117
|
-
expect(response).to be_a(Hash)
|
118
|
-
expect(response).to have_key('objects')
|
119
|
-
expect(response).to have_key('meta')
|
120
|
-
expect(response['objects'].size).to eq(5)
|
121
|
-
end
|
122
|
-
|
123
|
-
it 'should return a boundary from a boundary set' do
|
124
|
-
response = api.boundaries(:boundary_set => 'st-johns-wards', :boundary => 'ward-1')
|
125
|
-
expect(response).to be_a(Hash)
|
126
|
-
expect(response).to have_key('related')
|
127
|
-
end
|
128
|
-
|
129
|
-
it 'should return the representatives of a boundary from a boundary set' do
|
130
|
-
response = api.boundaries(:boundary_set => 'st-johns-wards', :boundary => 'ward-1', :representatives => true)
|
131
|
-
expect(response).to be_a(Hash)
|
132
|
-
expect(response).to have_key('objects')
|
133
|
-
expect(response).to have_key('meta')
|
134
|
-
expect(response['meta']['next']).to be_nil
|
41
|
+
it 'should raise an error if the boundary set does not exist' do
|
42
|
+
expect{api.boundaries(:boundary_set => 'nonexistent')}.to raise_error(GovKit::CA::ResourceNotFound, "404 https://represent.opennorth.ca/boundaries/nonexistent/?")
|
135
43
|
end
|
136
44
|
|
137
45
|
it 'should return boundaries from many boundary sets as an array' do
|
@@ -150,37 +58,19 @@ RSpec.describe GovKit::CA::Represent do
|
|
150
58
|
expect(response['objects'].size).to eq(10)
|
151
59
|
end
|
152
60
|
|
153
|
-
it 'should accept a point as an array' do
|
154
|
-
response = api.boundaries(:contains => ['47.5699', '-52.6954'])
|
155
|
-
expect(response).to be_a(Hash)
|
156
|
-
expect(response).to have_key('objects')
|
157
|
-
expect(response).to have_key('meta')
|
158
|
-
expect(response['meta']['next']).to be_nil
|
159
|
-
end
|
160
|
-
|
161
|
-
it 'should accept a point as a comma-separated list' do
|
162
|
-
response = api.boundaries(:contains => '47.5699,-52.6954')
|
163
|
-
expect(response).to be_a(Hash)
|
164
|
-
expect(response).to have_key('objects')
|
165
|
-
expect(response).to have_key('meta')
|
166
|
-
expect(response['meta']['next']).to be_nil
|
167
|
-
end
|
168
|
-
|
169
|
-
it 'should raise an error if the point is invalid' do
|
170
|
-
expect{api.boundaries(:contains => '0,0,0')}.to raise_error(GovKit::CA::InvalidRequest, "400 https://represent.opennorth.ca/boundaries/?contains=0,0,0 Invalid latitude,longitude '0,0,0' provided.")
|
171
|
-
end
|
172
|
-
|
173
|
-
it 'should raise an error if the boundary set does not exist' do
|
174
|
-
expect{api.boundaries(:boundary_set => 'foo')}.to raise_error(GovKit::CA::ResourceNotFound, "404 https://represent.opennorth.ca/boundaries/foo/?")
|
175
|
-
end
|
176
|
-
|
177
61
|
context 'when retrieving a boundary' do
|
62
|
+
it 'should return a boundary from a boundary set' do
|
63
|
+
response = api.boundaries(:boundary_set => 'st-johns-wards', :boundary => 'ward-1')
|
64
|
+
expect(response).to be_a(Hash)
|
65
|
+
expect(response).to have_key('related')
|
66
|
+
end
|
67
|
+
|
178
68
|
it 'should raise an error if the boundary set does not exist' do
|
179
|
-
expect{api.boundaries(:boundary_set => '
|
69
|
+
expect{api.boundaries(:boundary_set => 'nonexistent', :boundary => 'ward-1')}.to raise_error(GovKit::CA::ResourceNotFound, "404 https://represent.opennorth.ca/boundaries/nonexistent/ward-1/?")
|
180
70
|
end
|
181
71
|
|
182
72
|
it 'should raise an error if the boundary does not exist' do
|
183
|
-
expect{api.boundaries(:boundary_set => 'st-johns-wards', :boundary => '
|
73
|
+
expect{api.boundaries(:boundary_set => 'st-johns-wards', :boundary => 'nonexistent')}.to raise_error(GovKit::CA::ResourceNotFound, "404 https://represent.opennorth.ca/boundaries/st-johns-wards/nonexistent/?")
|
184
74
|
end
|
185
75
|
|
186
76
|
it 'should raise an error if the boundary set is not given' do
|
@@ -189,12 +79,20 @@ RSpec.describe GovKit::CA::Represent do
|
|
189
79
|
end
|
190
80
|
|
191
81
|
context 'when retrieving the representatives of a boundary' do
|
82
|
+
it 'should return the representatives of a boundary from a boundary set' do
|
83
|
+
response = api.boundaries(:boundary_set => 'st-johns-wards', :boundary => 'ward-1', :representatives => true)
|
84
|
+
expect(response).to be_a(Hash)
|
85
|
+
expect(response).to have_key('objects')
|
86
|
+
expect(response).to have_key('meta')
|
87
|
+
expect(response['meta']['next']).to be_nil
|
88
|
+
end
|
89
|
+
|
192
90
|
it 'should not raise an error if the boundary set does not exist' do
|
193
|
-
expect{api.boundaries(:boundary_set => '
|
91
|
+
expect{api.boundaries(:boundary_set => 'nonexistent', :boundary => 'ward-1', :representatives => true)}.to_not raise_error
|
194
92
|
end
|
195
93
|
|
196
94
|
it 'should not raise an error if the boundary does not exist' do
|
197
|
-
expect{api.boundaries(:boundary_set => 'st-johns-wards', :boundary => '
|
95
|
+
expect{api.boundaries(:boundary_set => 'st-johns-wards', :boundary => 'nonexistent', :representatives => true)}.to_not raise_error
|
198
96
|
end
|
199
97
|
|
200
98
|
it 'should raise an error if the boundary set is not given' do
|
@@ -205,83 +103,33 @@ RSpec.describe GovKit::CA::Represent do
|
|
205
103
|
expect{api.boundaries(:boundary_set => 'st-johns-wards', :representatives => true)}.to raise_error(ArgumentError, ':boundary_set and :boundary must be set if :representatives is true')
|
206
104
|
end
|
207
105
|
end
|
208
|
-
|
209
|
-
it 'should raise an error if the limit is invalid' do
|
210
|
-
expect{api.boundaries(:limit => -1)}.to raise_error(GovKit::CA::InvalidRequest, "400 https://represent.opennorth.ca/boundaries/?limit=-1 Invalid limit '-1' provided. Please provide a positive integer >= 0.")
|
211
|
-
end
|
212
|
-
|
213
|
-
it 'should raise an error if the offset is invalid' do
|
214
|
-
expect{api.boundaries(:offset => -1)}.to raise_error(GovKit::CA::InvalidRequest, "400 https://represent.opennorth.ca/boundaries/?offset=-1 Invalid offset '-1' provided. Please provide a positive integer >= 0.")
|
215
|
-
end
|
216
106
|
end
|
217
107
|
|
218
|
-
describe '#
|
108
|
+
describe '#postcodes' do
|
219
109
|
let :api do
|
220
110
|
GovKit::CA::Represent.new
|
221
111
|
end
|
222
112
|
|
223
|
-
it 'should
|
224
|
-
response = api.
|
225
|
-
expect(response).to be_a(Hash)
|
226
|
-
expect(response).to have_key('objects')
|
227
|
-
expect(response).to have_key('meta')
|
228
|
-
expect(response['meta']['next']).to_not be_nil
|
229
|
-
end
|
230
|
-
|
231
|
-
it 'should return representatives from a representative set' do
|
232
|
-
response = api.representatives(:representative_set => 'st-johns-city-council')
|
233
|
-
expect(response).to be_a(Hash)
|
234
|
-
expect(response).to have_key('objects')
|
235
|
-
expect(response).to have_key('meta')
|
236
|
-
expect(response['meta']['next']).to be_nil
|
237
|
-
end
|
238
|
-
|
239
|
-
it 'should accept a point as an array' do
|
240
|
-
response = api.representatives(:point => ['47.5699', '-52.6954'])
|
241
|
-
expect(response).to be_a(Hash)
|
242
|
-
expect(response).to have_key('objects')
|
243
|
-
expect(response).to have_key('meta')
|
244
|
-
expect(response['meta']['next']).to be_nil
|
245
|
-
end
|
246
|
-
|
247
|
-
it 'should accept a point as a comma-separated list' do
|
248
|
-
response = api.representatives(:point => '47.5699,-52.6954')
|
113
|
+
it 'should query by postal code' do
|
114
|
+
response = api.postcodes('A1A1A1')
|
249
115
|
expect(response).to be_a(Hash)
|
250
|
-
expect(response).to have_key('
|
251
|
-
expect(response).to have_key('meta')
|
252
|
-
expect(response['meta']['next']).to be_nil
|
116
|
+
expect(response).to have_key('code')
|
253
117
|
end
|
254
118
|
|
255
|
-
it 'should accept an array of
|
256
|
-
response = api.
|
119
|
+
it 'should accept an array of boundary sets' do
|
120
|
+
response = api.postcodes('A1A1A1', :sets => ['federal-electoral-districts', 'census-subdivisions'])
|
257
121
|
expect(response).to be_a(Hash)
|
258
|
-
expect(response).to
|
259
|
-
expect(response).to have_key('meta')
|
260
|
-
expect(response['meta']['next']).to be_nil
|
122
|
+
expect((response['boundaries_centroid'] + response['boundaries_concordance']).size).to eq(2)
|
261
123
|
end
|
262
124
|
|
263
|
-
it 'should accept a comma-separated list of
|
264
|
-
response = api.
|
125
|
+
it 'should accept a comma-separated list of boundary sets' do
|
126
|
+
response = api.postcodes('A1A1A1', :sets => 'federal-electoral-districts,census-subdivisions')
|
265
127
|
expect(response).to be_a(Hash)
|
266
|
-
expect(response).to
|
267
|
-
expect(response).to have_key('meta')
|
268
|
-
expect(response['meta']['next']).to be_nil
|
269
|
-
end
|
270
|
-
|
271
|
-
it 'should raise an error if the point is invalid' do
|
272
|
-
expect{api.representatives(:point => '0,0,0')}.to raise_error(GovKit::CA::InvalidRequest, "400 https://represent.opennorth.ca/representatives/?point=0,0,0 Invalid latitude,longitude '0,0,0' provided.")
|
273
|
-
end
|
274
|
-
|
275
|
-
it 'should not raise an error if the representative set does not exist' do
|
276
|
-
expect{api.representatives(:representative_set => 'foo')}.to_not raise_error
|
277
|
-
end
|
278
|
-
|
279
|
-
it 'should raise an error if the limit is invalid' do
|
280
|
-
expect{api.representatives(:limit => -1)}.to raise_error(GovKit::CA::InvalidRequest, "400 https://represent.opennorth.ca/representatives/?limit=-1 Invalid limit '-1' provided. Please provide a positive integer >= 0.")
|
128
|
+
expect((response['boundaries_centroid'] + response['boundaries_concordance']).size).to eq(2)
|
281
129
|
end
|
282
130
|
|
283
|
-
it 'should raise an error if the
|
284
|
-
expect{api.
|
131
|
+
it 'should raise an error if the postal code does not exist' do
|
132
|
+
expect{api.postcodes('Z0Z0Z0')}.to raise_error(GovKit::CA::ResourceNotFound, "404 https://represent.opennorth.ca/postcodes/Z0Z0Z0/?")
|
285
133
|
end
|
286
134
|
end
|
287
135
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -8,32 +8,33 @@ SimpleCov.start do
|
|
8
8
|
end
|
9
9
|
|
10
10
|
require 'rspec'
|
11
|
-
require File.dirname(__FILE__) + '/../lib/gov_kit-ca'
|
12
|
-
|
13
11
|
RSpec.configure do |config|
|
14
12
|
config.filter_run_excluding :broken => true
|
15
13
|
end
|
16
14
|
|
15
|
+
Dir['./spec/support/**/*.rb'].sort.each { |f| require f}
|
16
|
+
require File.dirname(__FILE__) + '/../lib/gov_kit-ca'
|
17
|
+
|
17
18
|
EXPECTATIONS = {
|
18
|
-
conservative_ca
|
19
|
+
:conservative_ca => {
|
19
20
|
'T1P1K1' => [48010],
|
20
21
|
'K0A1K0' => [35025, 35052, 35063],
|
21
22
|
},
|
22
|
-
elections_ca
|
23
|
+
:elections_ca => {
|
23
24
|
'G0C2Y0' => [24026],
|
24
25
|
'T5S2B9' => [48031],
|
25
26
|
},
|
26
|
-
green_party_ca
|
27
|
+
:green_party_ca => {
|
27
28
|
'G0C2Y0' => [24026],
|
28
29
|
'T5S2B9' => [48031],
|
29
30
|
},
|
30
|
-
liberal_ca
|
31
|
+
:liberal_ca => {
|
31
32
|
'G0C2Y0' => [24026],
|
32
33
|
'T5S2B9' => [48031],
|
33
34
|
'B0J2L0' => [12002], # too few
|
34
35
|
'K0A1K0' => [35076], # too few
|
35
36
|
},
|
36
|
-
ndp_ca
|
37
|
+
:ndp_ca => {
|
37
38
|
'G0C2Y0' => [24026],
|
38
39
|
'T5S2B9' => [48031],
|
39
40
|
'B0J2L0' => [12002, 12008],
|
@@ -41,13 +42,7 @@ EXPECTATIONS = {
|
|
41
42
|
},
|
42
43
|
|
43
44
|
# Deprecated.
|
44
|
-
|
45
|
-
'G0C2Y0' => [24019],
|
46
|
-
'T5S2B9' => [48015, 48017],
|
47
|
-
'B0J2L0' => [12002, 12007, 12008],
|
48
|
-
'K0A1K0' => [35025, 35052, 35063, 35064],
|
49
|
-
},
|
50
|
-
digital_copyright_ca: {
|
45
|
+
:digital_copyright_ca => {
|
51
46
|
'G0C2Y0' => [24019, 24039],
|
52
47
|
'T5S2B9' => [48012, 48013, 48014, 48015, 48017, 48018],
|
53
48
|
'B0J2L0' => [12002, 12007, 12008],
|
data/spec/strategy_set_spec.rb
CHANGED
@@ -19,7 +19,6 @@ RSpec.describe GovKit::CA::PostalCode::StrategySet do
|
|
19
19
|
GovKit::CA::PostalCode::Strategy::LiberalCa,
|
20
20
|
GovKit::CA::PostalCode::Strategy::NDPCa,
|
21
21
|
# GovKit::CA::PostalCode::Strategy::GreenPartyCa,
|
22
|
-
# GovKit::CA::PostalCode::Strategy::CBCCa,
|
23
22
|
# GovKit::CA::PostalCode::Strategy::ConservativeCa,
|
24
23
|
])
|
25
24
|
end
|
@@ -0,0 +1,118 @@
|
|
1
|
+
RSpec.shared_examples 'pagination' do |method,endpoint|
|
2
|
+
it 'should raise an error if the limit is invalid' do
|
3
|
+
expect{api.send(method, :limit => -1)}.to raise_error(GovKit::CA::InvalidRequest, "400 https://represent.opennorth.ca/#{endpoint}/?limit=-1 Invalid limit '-1' provided. Please provide a positive integer >= 0.")
|
4
|
+
end
|
5
|
+
|
6
|
+
it 'should raise an error if the offset is invalid' do
|
7
|
+
expect{api.send(method, :offset => -1)}.to raise_error(GovKit::CA::InvalidRequest, "400 https://represent.opennorth.ca/#{endpoint}/?offset=-1 Invalid offset '-1' provided. Please provide a positive integer >= 0.")
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
RSpec.shared_examples 'set' do |method,set|
|
12
|
+
include_examples 'pagination', method, method.sub('_', '-')
|
13
|
+
|
14
|
+
let :option do
|
15
|
+
method.chomp('s').to_sym
|
16
|
+
end
|
17
|
+
|
18
|
+
let :endpoint do
|
19
|
+
method.sub('_', '-')
|
20
|
+
end
|
21
|
+
|
22
|
+
let :api do
|
23
|
+
GovKit::CA::Represent.new
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'should return sets' do
|
27
|
+
response = api.send(method)
|
28
|
+
expect(response).to be_a(Hash)
|
29
|
+
expect(response).to have_key('objects')
|
30
|
+
expect(response).to have_key('meta')
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'should return a set' do
|
34
|
+
response = api.send(method, option => set)
|
35
|
+
expect(response).to be_a(Hash)
|
36
|
+
expect(response).to have_key('related')
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'should raise an error if the set does not exist' do
|
40
|
+
expect{api.send(method, option => 'nonexistent')}.to raise_error(GovKit::CA::ResourceNotFound, "404 https://represent.opennorth.ca/#{endpoint}/nonexistent/?")
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
RSpec.shared_examples 'item' do |method,set,size,options|
|
45
|
+
include_examples 'pagination', method, method
|
46
|
+
|
47
|
+
let :endpoint do
|
48
|
+
method
|
49
|
+
end
|
50
|
+
|
51
|
+
let :api do
|
52
|
+
GovKit::CA::Represent.new
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'should return items' do
|
56
|
+
response = api.send(method)
|
57
|
+
expect(response).to be_a(Hash)
|
58
|
+
expect(response).to have_key('objects')
|
59
|
+
expect(response).to have_key('meta')
|
60
|
+
expect(response['meta']['next']).to_not be_nil
|
61
|
+
end
|
62
|
+
|
63
|
+
it 'should return items from a set' do
|
64
|
+
response = api.send(method, options.fetch(:set) => set)
|
65
|
+
expect(response).to be_a(Hash)
|
66
|
+
expect(response).to have_key('objects')
|
67
|
+
expect(response).to have_key('meta')
|
68
|
+
expect(response['objects'].size).to eq(size)
|
69
|
+
end
|
70
|
+
|
71
|
+
it 'should accept a point as an array' do
|
72
|
+
response = api.send(method, options.fetch(:point) => ['47.5699', '-52.6954'])
|
73
|
+
expect(response).to be_a(Hash)
|
74
|
+
expect(response).to have_key('objects')
|
75
|
+
expect(response).to have_key('meta')
|
76
|
+
expect(response['meta']['next']).to be_nil
|
77
|
+
end
|
78
|
+
|
79
|
+
it 'should accept a point as a comma-separated list' do
|
80
|
+
response = api.send(method, options.fetch(:point) => '47.5699,-52.6954')
|
81
|
+
expect(response).to be_a(Hash)
|
82
|
+
expect(response).to have_key('objects')
|
83
|
+
expect(response).to have_key('meta')
|
84
|
+
expect(response['meta']['next']).to be_nil
|
85
|
+
end
|
86
|
+
|
87
|
+
it 'should raise an error if the point is invalid' do
|
88
|
+
expect{api.send(method, options.fetch(:point) => '0,0,0')}.to raise_error(GovKit::CA::InvalidRequest, "400 https://represent.opennorth.ca/#{endpoint}/?#{options[:point]}=0,0,0 Invalid latitude,longitude '0,0,0' provided.")
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
RSpec.shared_examples 'representative' do |method,set,size,options|
|
93
|
+
include_examples 'item', method, set, size, options
|
94
|
+
|
95
|
+
let :api do
|
96
|
+
GovKit::CA::Represent.new
|
97
|
+
end
|
98
|
+
|
99
|
+
it 'should not raise an error if the set does not exist' do
|
100
|
+
expect{api.send(method, options.fetch(:set) => 'foo')}.to_not raise_error
|
101
|
+
end
|
102
|
+
|
103
|
+
it 'should accept an array of districts' do
|
104
|
+
response = api.send(method, :districts => ['federal-electoral-districts/10007', 'census-subdivisions/1001519'])
|
105
|
+
expect(response).to be_a(Hash)
|
106
|
+
expect(response).to have_key('objects')
|
107
|
+
expect(response).to have_key('meta')
|
108
|
+
expect(response['meta']['next']).to be_nil
|
109
|
+
end
|
110
|
+
|
111
|
+
it 'should accept a comma-separated list of districts' do
|
112
|
+
response = api.send(method, :districts => 'federal-electoral-districts/10007,census-subdivisions/1001519')
|
113
|
+
expect(response).to be_a(Hash)
|
114
|
+
expect(response).to have_key('objects')
|
115
|
+
expect(response).to have_key('meta')
|
116
|
+
expect(response['meta']['next']).to be_nil
|
117
|
+
end
|
118
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: govkit-ca
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Open North
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-09-
|
11
|
+
date: 2015-09-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -142,7 +142,6 @@ files:
|
|
142
142
|
- lib/gov_kit-ca.rb
|
143
143
|
- lib/gov_kit-ca/postal_code.rb
|
144
144
|
- lib/gov_kit-ca/postal_code/strategy/base.rb
|
145
|
-
- lib/gov_kit-ca/postal_code/strategy/cbc_ca.rb
|
146
145
|
- lib/gov_kit-ca/postal_code/strategy/conservative_ca.rb
|
147
146
|
- lib/gov_kit-ca/postal_code/strategy/digital-copyright_ca.rb
|
148
147
|
- lib/gov_kit-ca/postal_code/strategy/elections_ca.rb
|
@@ -154,8 +153,6 @@ files:
|
|
154
153
|
- lib/gov_kit-ca/represent.rb
|
155
154
|
- lib/gov_kit-ca/version.rb
|
156
155
|
- lib/govkit-ca.rb
|
157
|
-
- lib/rid_to_edid.yml
|
158
|
-
- spec/cbc_ca_spec.rb
|
159
156
|
- spec/conservative_ca_spec.rb
|
160
157
|
- spec/digital-copyright_ca_spec.rb
|
161
158
|
- spec/elections_ca_spec.rb
|
@@ -167,6 +164,7 @@ files:
|
|
167
164
|
- spec/represent_spec.rb
|
168
165
|
- spec/spec_helper.rb
|
169
166
|
- spec/strategy_set_spec.rb
|
167
|
+
- spec/support/shared_examples_for_represent.rb
|
170
168
|
- tasks/postal-code-for-districts.csv
|
171
169
|
- tasks/tasks.rb
|
172
170
|
homepage: https://github.com/opennorth/govkit-ca
|
@@ -194,7 +192,6 @@ signing_key:
|
|
194
192
|
specification_version: 4
|
195
193
|
summary: Easy access to Canadian civic data around the web
|
196
194
|
test_files:
|
197
|
-
- spec/cbc_ca_spec.rb
|
198
195
|
- spec/conservative_ca_spec.rb
|
199
196
|
- spec/digital-copyright_ca_spec.rb
|
200
197
|
- spec/elections_ca_spec.rb
|
@@ -206,4 +203,5 @@ test_files:
|
|
206
203
|
- spec/represent_spec.rb
|
207
204
|
- spec/spec_helper.rb
|
208
205
|
- spec/strategy_set_spec.rb
|
206
|
+
- spec/support/shared_examples_for_represent.rb
|
209
207
|
has_rdoc:
|
@@ -1,31 +0,0 @@
|
|
1
|
-
module GovKit
|
2
|
-
module CA
|
3
|
-
module PostalCode
|
4
|
-
module Strategy
|
5
|
-
# @deprecated Due to redistribution.
|
6
|
-
class CBCCa < Base
|
7
|
-
base_uri 'www.cbc.ca'
|
8
|
-
http_method :get
|
9
|
-
path '/news/politics/canadavotes2011/myelection/postalcodes/index.php?pc=<%= @postal_code %>'
|
10
|
-
|
11
|
-
private
|
12
|
-
|
13
|
-
def electoral_districts!
|
14
|
-
JSON.load(response.parsed_response).map{|x| self.class.rid_to_edid[x['rid'].to_i]}
|
15
|
-
end
|
16
|
-
|
17
|
-
def valid?
|
18
|
-
response.code != 404
|
19
|
-
end
|
20
|
-
|
21
|
-
# cbc.ca uses an internal riding ID, which must be matched to a
|
22
|
-
# canonical electoral district ID.
|
23
|
-
# @return [Hash] a map of cbc.ca riding ID to electoral district ID
|
24
|
-
def self.rid_to_edid
|
25
|
-
@@yml ||= YAML.load_file(File.expand_path('../../../../rid_to_edid.yml', __FILE__))
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
data/lib/rid_to_edid.yml
DELETED
@@ -1,309 +0,0 @@
|
|
1
|
-
---
|
2
|
-
1: 10001
|
3
|
-
2: 10002
|
4
|
-
3: 10003
|
5
|
-
4: 10004
|
6
|
-
5: 10005
|
7
|
-
6: 10006
|
8
|
-
7: 10007
|
9
|
-
8: 11001
|
10
|
-
9: 11002
|
11
|
-
10: 11003
|
12
|
-
11: 11004
|
13
|
-
12: 12001
|
14
|
-
13: 12002
|
15
|
-
14: 12007
|
16
|
-
15: 12003
|
17
|
-
16: 12004
|
18
|
-
17: 12005
|
19
|
-
18: 12006
|
20
|
-
19: 12008
|
21
|
-
20: 12009
|
22
|
-
21: 12010
|
23
|
-
22: 12011
|
24
|
-
23: 13001
|
25
|
-
24: 13002
|
26
|
-
25: 13003
|
27
|
-
26: 13004
|
28
|
-
27: 13005
|
29
|
-
28: 13006
|
30
|
-
29: 13007
|
31
|
-
30: 13008
|
32
|
-
31: 13009
|
33
|
-
32: 13010
|
34
|
-
33: 24046
|
35
|
-
34: 24001
|
36
|
-
35: 24002
|
37
|
-
36: 24003
|
38
|
-
37: 24004
|
39
|
-
38: 24054
|
40
|
-
39: 24005
|
41
|
-
40: 24006
|
42
|
-
41: 24007
|
43
|
-
42: 24008
|
44
|
-
43: 24009
|
45
|
-
44: 24010
|
46
|
-
45: 24011
|
47
|
-
46: 24012
|
48
|
-
47: 24013
|
49
|
-
48: 24015
|
50
|
-
49: 24016
|
51
|
-
50: 24017
|
52
|
-
51: 24018
|
53
|
-
52: 24019
|
54
|
-
53: 24020
|
55
|
-
54: 24041
|
56
|
-
55: 24021
|
57
|
-
56: 24022
|
58
|
-
57: 24023
|
59
|
-
58: 24024
|
60
|
-
59: 24025
|
61
|
-
60: 24026
|
62
|
-
61: 24027
|
63
|
-
62: 24028
|
64
|
-
63: 24029
|
65
|
-
64: 24030
|
66
|
-
65: 24031
|
67
|
-
66: 24032
|
68
|
-
67: 24033
|
69
|
-
68: 24034
|
70
|
-
69: 24035
|
71
|
-
70: 24036
|
72
|
-
71: 24037
|
73
|
-
72: 24038
|
74
|
-
73: 24039
|
75
|
-
74: 24040
|
76
|
-
75: 24042
|
77
|
-
76: 24043
|
78
|
-
77: 24058
|
79
|
-
78: 24014
|
80
|
-
79: 24044
|
81
|
-
80: 24045
|
82
|
-
81: 24047
|
83
|
-
82: 24048
|
84
|
-
83: 24049
|
85
|
-
84: 24050
|
86
|
-
85: 24051
|
87
|
-
86: 24052
|
88
|
-
87: 24053
|
89
|
-
88: 24055
|
90
|
-
89: 24056
|
91
|
-
90: 24057
|
92
|
-
91: 24059
|
93
|
-
92: 24060
|
94
|
-
93: 24061
|
95
|
-
94: 24062
|
96
|
-
95: 24063
|
97
|
-
96: 24064
|
98
|
-
97: 24065
|
99
|
-
98: 24066
|
100
|
-
99: 24067
|
101
|
-
100: 24068
|
102
|
-
101: 24069
|
103
|
-
102: 24070
|
104
|
-
103: 24071
|
105
|
-
104: 24072
|
106
|
-
105: 24073
|
107
|
-
106: 24074
|
108
|
-
107: 24075
|
109
|
-
108: 35001
|
110
|
-
109: 35002
|
111
|
-
110: 35003
|
112
|
-
111: 35004
|
113
|
-
112: 35005
|
114
|
-
113: 35006
|
115
|
-
114: 35007
|
116
|
-
115: 35008
|
117
|
-
116: 35009
|
118
|
-
117: 35026
|
119
|
-
118: 35010
|
120
|
-
119: 35011
|
121
|
-
120: 35012
|
122
|
-
121: 35013
|
123
|
-
122: 35015
|
124
|
-
123: 35016
|
125
|
-
124: 35017
|
126
|
-
125: 35018
|
127
|
-
126: 35014
|
128
|
-
127: 35019
|
129
|
-
128: 35020
|
130
|
-
129: 35021
|
131
|
-
130: 35022
|
132
|
-
131: 35023
|
133
|
-
132: 35024
|
134
|
-
133: 35025
|
135
|
-
134: 35027
|
136
|
-
135: 35028
|
137
|
-
136: 35029
|
138
|
-
137: 35030
|
139
|
-
138: 35031
|
140
|
-
139: 35032
|
141
|
-
140: 35033
|
142
|
-
141: 35034
|
143
|
-
142: 35035
|
144
|
-
143: 35036
|
145
|
-
144: 35037
|
146
|
-
145: 35038
|
147
|
-
146: 35039
|
148
|
-
147: 35046
|
149
|
-
148: 35040
|
150
|
-
149: 35041
|
151
|
-
150: 35042
|
152
|
-
151: 35043
|
153
|
-
152: 35044
|
154
|
-
153: 35045
|
155
|
-
154: 35047
|
156
|
-
155: 35048
|
157
|
-
156: 35049
|
158
|
-
157: 35050
|
159
|
-
158: 35051
|
160
|
-
159: 35052
|
161
|
-
160: 35053
|
162
|
-
161: 35054
|
163
|
-
162: 35055
|
164
|
-
163: 35056
|
165
|
-
164: 35057
|
166
|
-
165: 35058
|
167
|
-
166: 35059
|
168
|
-
167: 35060
|
169
|
-
168: 35061
|
170
|
-
169: 35062
|
171
|
-
170: 35063
|
172
|
-
171: 35064
|
173
|
-
172: 35065
|
174
|
-
173: 35066
|
175
|
-
174: 35067
|
176
|
-
175: 35068
|
177
|
-
176: 35069
|
178
|
-
177: 35070
|
179
|
-
178: 35071
|
180
|
-
179: 35072
|
181
|
-
180: 35073
|
182
|
-
181: 35074
|
183
|
-
182: 35075
|
184
|
-
183: 35076
|
185
|
-
184: 35077
|
186
|
-
185: 35078
|
187
|
-
186: 35079
|
188
|
-
187: 35080
|
189
|
-
188: 35081
|
190
|
-
189: 35082
|
191
|
-
190: 35083
|
192
|
-
191: 35084
|
193
|
-
192: 35085
|
194
|
-
193: 35086
|
195
|
-
194: 35087
|
196
|
-
195: 35088
|
197
|
-
196: 35089
|
198
|
-
197: 35090
|
199
|
-
198: 35091
|
200
|
-
199: 35092
|
201
|
-
200: 35093
|
202
|
-
201: 35094
|
203
|
-
202: 35095
|
204
|
-
203: 35096
|
205
|
-
204: 35097
|
206
|
-
205: 35098
|
207
|
-
206: 35099
|
208
|
-
207: 35100
|
209
|
-
208: 35101
|
210
|
-
209: 35102
|
211
|
-
210: 35103
|
212
|
-
211: 35104
|
213
|
-
212: 35105
|
214
|
-
213: 35106
|
215
|
-
214: 46001
|
216
|
-
215: 46002
|
217
|
-
216: 46003
|
218
|
-
217: 46004
|
219
|
-
218: 46005
|
220
|
-
219: 46006
|
221
|
-
220: 46007
|
222
|
-
221: 46008
|
223
|
-
222: 46009
|
224
|
-
223: 46010
|
225
|
-
224: 46011
|
226
|
-
225: 46012
|
227
|
-
226: 46013
|
228
|
-
227: 46014
|
229
|
-
228: 47001
|
230
|
-
229: 47002
|
231
|
-
230: 47004
|
232
|
-
231: 47003
|
233
|
-
232: 47005
|
234
|
-
233: 47006
|
235
|
-
234: 47007
|
236
|
-
235: 47008
|
237
|
-
236: 47009
|
238
|
-
237: 47010
|
239
|
-
238: 47011
|
240
|
-
239: 47012
|
241
|
-
240: 47013
|
242
|
-
241: 47014
|
243
|
-
242: 48006
|
244
|
-
243: 48003
|
245
|
-
244: 48002
|
246
|
-
245: 48004
|
247
|
-
246: 48005
|
248
|
-
247: 48007
|
249
|
-
248: 48008
|
250
|
-
249: 48009
|
251
|
-
250: 48010
|
252
|
-
251: 48012
|
253
|
-
252: 48013
|
254
|
-
253: 48014
|
255
|
-
254: 48011
|
256
|
-
255: 48015
|
257
|
-
256: 48016
|
258
|
-
257: 48017
|
259
|
-
258: 48018
|
260
|
-
259: 48001
|
261
|
-
260: 48019
|
262
|
-
261: 48020
|
263
|
-
262: 48021
|
264
|
-
263: 48022
|
265
|
-
264: 48023
|
266
|
-
265: 48024
|
267
|
-
266: 48025
|
268
|
-
267: 48026
|
269
|
-
268: 48027
|
270
|
-
269: 48028
|
271
|
-
270: 59001
|
272
|
-
271: 59026
|
273
|
-
272: 59002
|
274
|
-
273: 59003
|
275
|
-
274: 59004
|
276
|
-
275: 59005
|
277
|
-
276: 59006
|
278
|
-
277: 59008
|
279
|
-
278: 59009
|
280
|
-
279: 59010
|
281
|
-
280: 59011
|
282
|
-
281: 59012
|
283
|
-
282: 59013
|
284
|
-
283: 59014
|
285
|
-
284: 59015
|
286
|
-
285: 59016
|
287
|
-
286: 59017
|
288
|
-
287: 59019
|
289
|
-
288: 59020
|
290
|
-
289: 59018
|
291
|
-
290: 59007
|
292
|
-
291: 59021
|
293
|
-
292: 59022
|
294
|
-
293: 59023
|
295
|
-
294: 59024
|
296
|
-
295: 59025
|
297
|
-
296: 59027
|
298
|
-
297: 59028
|
299
|
-
298: 59029
|
300
|
-
299: 59030
|
301
|
-
300: 59031
|
302
|
-
301: 59032
|
303
|
-
302: 59033
|
304
|
-
303: 59034
|
305
|
-
304: 59035
|
306
|
-
305: 59036
|
307
|
-
306: 60001
|
308
|
-
307: 61001
|
309
|
-
308: 62001
|
data/spec/cbc_ca_spec.rb
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
-
|
3
|
-
RSpec.describe GovKit::CA::PostalCode::Strategy::CBCCa do
|
4
|
-
describe '#electoral_districts', :broken => true do
|
5
|
-
it 'should return the electoral districts within a postal code' do
|
6
|
-
EXPECTATIONS[:cbc_ca].each do |postal_code,electoral_districts|
|
7
|
-
expect(GovKit::CA::PostalCode::Strategy::CBCCa.new(postal_code).electoral_districts).to eq(electoral_districts)
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
it 'should return false if a postal code contains no electoral districts' do
|
12
|
-
expect(GovKit::CA::PostalCode::Strategy::CBCCa.new('H0H0H0').electoral_districts).to eq(false)
|
13
|
-
end
|
14
|
-
|
15
|
-
it 'should return false if a postal code does not exist' do
|
16
|
-
expect(GovKit::CA::PostalCode::Strategy::CBCCa.new('X1B1B1').electoral_districts).to eq(false)
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|