countries 0.8.4 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -0
- data/lib/countries/country.rb +26 -16
- data/lib/countries/select_helper.rb +1 -1
- data/lib/countries/version.rb +1 -1
- data/lib/data/countries.yaml +2317 -1806
- data/lib/data/subdivisions/SE.yaml +39 -39
- data/spec/country_spec.rb +74 -20
- metadata +3 -3
@@ -1,71 +1,71 @@
|
|
1
1
|
---
|
2
2
|
AB:
|
3
|
-
name: "Stockholms län
|
4
|
-
names: "Stockholms län
|
3
|
+
name: "Stockholms län"
|
4
|
+
names: "Stockholms län"
|
5
5
|
AC:
|
6
|
-
name: "Västerbottens län
|
7
|
-
names: "Västerbottens län
|
6
|
+
name: "Västerbottens län"
|
7
|
+
names: "Västerbottens län"
|
8
8
|
BD:
|
9
|
-
name: "Norrbottens län
|
10
|
-
names: "Norrbottens län
|
9
|
+
name: "Norrbottens län"
|
10
|
+
names: "Norrbottens län"
|
11
11
|
C:
|
12
|
-
name: "Uppsala län
|
13
|
-
names: "Uppsala län
|
12
|
+
name: "Uppsala län"
|
13
|
+
names: "Uppsala län"
|
14
14
|
D:
|
15
|
-
name: "Södermanlands län
|
16
|
-
names: "Södermanlands län
|
15
|
+
name: "Södermanlands län"
|
16
|
+
names: "Södermanlands län"
|
17
17
|
E:
|
18
|
-
name: "Östergötlands län
|
19
|
-
names: "Östergötlands län
|
18
|
+
name: "Östergötlands län"
|
19
|
+
names: "Östergötlands län"
|
20
20
|
F:
|
21
|
-
name: "Jönköpings län
|
22
|
-
names: "Jönköpings län
|
21
|
+
name: "Jönköpings län"
|
22
|
+
names: "Jönköpings län"
|
23
23
|
G:
|
24
|
-
name: "Kronobergs län
|
25
|
-
names: "Kronobergs län
|
24
|
+
name: "Kronobergs län"
|
25
|
+
names: "Kronobergs län"
|
26
26
|
H:
|
27
|
-
name: "Kalmar län
|
27
|
+
name: "Kalmar län"
|
28
28
|
names:
|
29
29
|
- Calmar
|
30
30
|
I:
|
31
|
-
name: "Gotlands län
|
32
|
-
names: "Gotlands län
|
31
|
+
name: "Gotlands län"
|
32
|
+
names: "Gotlands län"
|
33
33
|
K:
|
34
|
-
name: "Blekinge län
|
35
|
-
names: "Blekinge län
|
34
|
+
name: "Blekinge län"
|
35
|
+
names: "Blekinge län"
|
36
36
|
M:
|
37
|
-
name: "Skåne län
|
37
|
+
name: "Skåne län"
|
38
38
|
names:
|
39
39
|
- Scania
|
40
40
|
? "N"
|
41
41
|
:
|
42
|
-
name: "Hallands län
|
43
|
-
names: "Hallands län
|
42
|
+
name: "Hallands län"
|
43
|
+
names: "Hallands län"
|
44
44
|
O:
|
45
|
-
name: "Västra Götalands län
|
46
|
-
names: "Västra Götalands län
|
45
|
+
name: "Västra Götalands län"
|
46
|
+
names: "Västra Götalands län"
|
47
47
|
S:
|
48
|
-
name: "Värmlands län
|
49
|
-
names: "Värmlands län
|
48
|
+
name: "Värmlands län"
|
49
|
+
names: "Värmlands län"
|
50
50
|
T:
|
51
|
-
name: "Örebro län
|
52
|
-
names: "Örebro län
|
51
|
+
name: "Örebro län"
|
52
|
+
names: "Örebro län"
|
53
53
|
U:
|
54
|
-
name: "Västmanlands län
|
55
|
-
names: "Västmanlands län
|
54
|
+
name: "Västmanlands län"
|
55
|
+
names: "Västmanlands län"
|
56
56
|
W:
|
57
|
-
name: "Dalarnas län
|
57
|
+
name: "Dalarnas län"
|
58
58
|
names:
|
59
59
|
- Dalarnas
|
60
60
|
- Dalecarlia
|
61
61
|
- Kopparberg
|
62
62
|
X:
|
63
|
-
name: "Gävleborgs län
|
64
|
-
names: "Gävleborgs län
|
63
|
+
name: "Gävleborgs län"
|
64
|
+
names: "Gävleborgs län"
|
65
65
|
? "Y"
|
66
66
|
:
|
67
|
-
name: "Västernorrlands län
|
68
|
-
names: "Västernorrlands län
|
67
|
+
name: "Västernorrlands län"
|
68
|
+
names: "Västernorrlands län"
|
69
69
|
Z:
|
70
|
-
name: "Jämtlands län
|
71
|
-
names: "Jämtlands län
|
70
|
+
name: "Jämtlands län"
|
71
|
+
names: "Jämtlands län"
|
data/spec/country_spec.rb
CHANGED
@@ -34,6 +34,10 @@ describe ISO3166::Country do
|
|
34
34
|
country.longitude.should == '97 00 W'
|
35
35
|
end
|
36
36
|
|
37
|
+
it "should return continent" do
|
38
|
+
country.continent.should == "North America"
|
39
|
+
end
|
40
|
+
|
37
41
|
it 'should return region' do
|
38
42
|
country.region.should == 'Americas'
|
39
43
|
end
|
@@ -41,11 +45,11 @@ describe ISO3166::Country do
|
|
41
45
|
it 'should return subregion' do
|
42
46
|
country.subregion.should == 'Northern America'
|
43
47
|
end
|
44
|
-
|
48
|
+
|
45
49
|
it 'should return ioc code' do
|
46
50
|
country.ioc.should == 'USA'
|
47
51
|
end
|
48
|
-
|
52
|
+
|
49
53
|
it 'should return UN/LOCODE' do
|
50
54
|
country.un_locode.should == 'US'
|
51
55
|
end
|
@@ -93,7 +97,7 @@ describe ISO3166::Country do
|
|
93
97
|
country.states.should have(57).states
|
94
98
|
end
|
95
99
|
end
|
96
|
-
|
100
|
+
|
97
101
|
describe 'valid?' do
|
98
102
|
it 'should return true if country is valid' do
|
99
103
|
ISO3166::Country.new('US').should be_valid
|
@@ -103,22 +107,30 @@ describe ISO3166::Country do
|
|
103
107
|
ISO3166::Country.new('fubar').should_not be_valid
|
104
108
|
end
|
105
109
|
end
|
106
|
-
|
110
|
+
|
107
111
|
describe 'all' do
|
108
112
|
it 'should return an arry list of all countries' do
|
109
113
|
countries = ISO3166::Country.all
|
110
114
|
countries.should be_an(Array)
|
111
115
|
countries.first.should be_an(Array)
|
112
|
-
countries.should have(
|
116
|
+
countries.should have(247).countries
|
117
|
+
end
|
118
|
+
|
119
|
+
it "should allow to customize each country representation passing a block to the method" do
|
120
|
+
countries = ISO3166::Country.all { |country, data| [data['name'], country, data['country_code'] ] }
|
121
|
+
countries.should be_an(Array)
|
122
|
+
countries.first.should be_an(Array)
|
123
|
+
countries.first.should have(3).fields
|
124
|
+
countries.should have(247).countries
|
113
125
|
end
|
114
126
|
end
|
115
|
-
|
127
|
+
|
116
128
|
describe 'countries' do
|
117
129
|
it 'should be the same as all' do
|
118
130
|
ISO3166::Country.countries.should == ISO3166::Country.all
|
119
131
|
end
|
120
132
|
end
|
121
|
-
|
133
|
+
|
122
134
|
describe 'search' do
|
123
135
|
it 'should return new country object when a valid alpha2 string is passed' do
|
124
136
|
ISO3166::Country.search('US').should be_a(ISO3166::Country)
|
@@ -144,7 +156,7 @@ describe ISO3166::Country do
|
|
144
156
|
|
145
157
|
it 'should allow access to symbol' do
|
146
158
|
country.currency[:symbol].should == '$'
|
147
|
-
end
|
159
|
+
end
|
148
160
|
end
|
149
161
|
|
150
162
|
describe "Country class" do
|
@@ -171,6 +183,50 @@ describe ISO3166::Country do
|
|
171
183
|
end
|
172
184
|
end
|
173
185
|
|
186
|
+
describe 'find_all_by' do
|
187
|
+
context "when searchead attribute equals the given value" do
|
188
|
+
let(:spain_data) { ISO3166::Country.find_all_by('alpha2', "ES") }
|
189
|
+
|
190
|
+
it "returns a hash with the data of the country" do
|
191
|
+
spain_data.should be_a Hash
|
192
|
+
spain_data.should have(1).keys
|
193
|
+
end
|
194
|
+
end
|
195
|
+
|
196
|
+
context "when searchead attribute is list and one of its elements equals the given value" do
|
197
|
+
let(:spain_data) { ISO3166::Country.find_all_by('languages', "en") }
|
198
|
+
|
199
|
+
it "returns a hash with the data of the country" do
|
200
|
+
spain_data.should be_a Hash
|
201
|
+
spain_data.size.should > 1
|
202
|
+
end
|
203
|
+
end
|
204
|
+
|
205
|
+
it "also finds results if the given values is not upcased/downcased properly" do
|
206
|
+
spain_data = ISO3166::Country.find_all_by('alpha2', "es")
|
207
|
+
spain_data.should be_a Hash
|
208
|
+
spain_data.should have(1).keys
|
209
|
+
end
|
210
|
+
|
211
|
+
it "also finds results if the attribute is given as a symbol" do
|
212
|
+
spain_data = ISO3166::Country.find_all_by(:alpha2, "ES")
|
213
|
+
spain_data.should be_a Hash
|
214
|
+
spain_data.should have(1).keys
|
215
|
+
end
|
216
|
+
|
217
|
+
it "casts the given value to a string to perform the search" do
|
218
|
+
spain_data = ISO3166::Country.find_all_by(:country_code, 34)
|
219
|
+
spain_data.should be_a Hash
|
220
|
+
spain_data.keys.should == ['ES']
|
221
|
+
end
|
222
|
+
|
223
|
+
it "also performs searches with regexps and forces it to ignore case" do
|
224
|
+
spain_data = ISO3166::Country.find_all_by(:names, /Españ/)
|
225
|
+
spain_data.should be_a Hash
|
226
|
+
spain_data.keys.should == ['ES']
|
227
|
+
end
|
228
|
+
end
|
229
|
+
|
174
230
|
describe "hash finder methods" do
|
175
231
|
context "when search name in 'name'" do
|
176
232
|
subject { ISO3166::Country.find_by_name("Poland") }
|
@@ -189,13 +245,13 @@ describe ISO3166::Country do
|
|
189
245
|
|
190
246
|
its(:first) { should == "PL" }
|
191
247
|
end
|
192
|
-
|
248
|
+
|
193
249
|
context "when finding by invalid attribute" do
|
194
250
|
it "should raise an error" do
|
195
251
|
lambda { ISO3166::Country.find_by_invalid('invalid') }.should raise_error
|
196
252
|
end
|
197
253
|
end
|
198
|
-
|
254
|
+
|
199
255
|
context "when using find_all method" do
|
200
256
|
let(:list) { ISO3166::Country.find_all_by_currency('USD') }
|
201
257
|
|
@@ -204,15 +260,14 @@ describe ISO3166::Country do
|
|
204
260
|
list.first.should be_a(Array)
|
205
261
|
end
|
206
262
|
end
|
207
|
-
|
263
|
+
|
208
264
|
context "when using find_by method" do
|
209
265
|
subject { ISO3166::Country.find_by_alpha3('CAN') }
|
210
|
-
|
266
|
+
|
211
267
|
its(:length) { should == 2 }
|
212
268
|
its(:first) { should be_a(String) }
|
213
269
|
its(:last) { should be_a(Hash) }
|
214
270
|
end
|
215
|
-
|
216
271
|
end
|
217
272
|
|
218
273
|
describe "country finder methods" do
|
@@ -241,13 +296,13 @@ describe ISO3166::Country do
|
|
241
296
|
bogus.should == nil
|
242
297
|
end
|
243
298
|
end
|
244
|
-
|
299
|
+
|
245
300
|
context "when finding by invalid attribute" do
|
246
301
|
it "should raise an error" do
|
247
302
|
lambda { ISO3166::Country.find_country_by_invalid('invalid') }.should raise_error
|
248
303
|
end
|
249
304
|
end
|
250
|
-
|
305
|
+
|
251
306
|
context "when using find_all method" do
|
252
307
|
let(:list) { ISO3166::Country.find_all_countries_by_currency('USD') }
|
253
308
|
|
@@ -256,10 +311,10 @@ describe ISO3166::Country do
|
|
256
311
|
list.first.should be_a(ISO3166::Country)
|
257
312
|
end
|
258
313
|
end
|
259
|
-
|
314
|
+
|
260
315
|
context "when using find_by method" do
|
261
316
|
let(:country) { ISO3166::Country.find_country_by_alpha3('CAN') }
|
262
|
-
|
317
|
+
|
263
318
|
it 'should be a single country object' do
|
264
319
|
country.should be_a(ISO3166::Country)
|
265
320
|
end
|
@@ -275,10 +330,10 @@ describe ISO3166::Country do
|
|
275
330
|
names.size.should == names.uniq.size
|
276
331
|
end
|
277
332
|
end
|
278
|
-
|
333
|
+
|
279
334
|
describe 'Norway' do
|
280
335
|
let(:norway) { ISO3166::Country.search('NO') }
|
281
|
-
|
336
|
+
|
282
337
|
it 'should have a currency' do
|
283
338
|
norway.currency.should be_a(ISO4217::Currency)
|
284
339
|
end
|
@@ -291,5 +346,4 @@ describe ISO3166::Country do
|
|
291
346
|
german_speaking_countries.size.should == 6
|
292
347
|
end
|
293
348
|
end
|
294
|
-
|
295
349
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: countries
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2013-02-22 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: currencies
|
@@ -300,7 +300,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
300
300
|
version: '0'
|
301
301
|
requirements: []
|
302
302
|
rubyforge_project:
|
303
|
-
rubygems_version: 1.8.
|
303
|
+
rubygems_version: 1.8.23
|
304
304
|
signing_key:
|
305
305
|
specification_version: 3
|
306
306
|
summary: Gives you a country object full of all sorts of useful information.
|