countries 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.markdown +1 -1
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/countries.gemspec +255 -0
- data/lib/countries.rb +14 -5
- data/spec/countries_spec.rb +14 -4
- metadata +4 -3
data/README.markdown
CHANGED
|
@@ -40,11 +40,11 @@ Then you have all sorts of methods on the Country object to give you info about
|
|
|
40
40
|
c.national_number_lengths # E.164 length of the national number
|
|
41
41
|
c.international_prefix # E.164 code for dialing international from country
|
|
42
42
|
c.national_prefix # E164 code for dialing within the country
|
|
43
|
+
c.subdivisions # All ISO3166-2 for that country with there codes
|
|
43
44
|
|
|
44
45
|
ToDo
|
|
45
46
|
----
|
|
46
47
|
|
|
47
|
-
* subdivisions (States/Providences ISO 3166-2)
|
|
48
48
|
* currency (ISO 4217)
|
|
49
49
|
* search/indexing
|
|
50
50
|
|
data/Rakefile
CHANGED
|
@@ -6,7 +6,7 @@ begin
|
|
|
6
6
|
Jeweler::Tasks.new do |gem|
|
|
7
7
|
gem.name = "countries"
|
|
8
8
|
gem.summary = 'All sorts of useful information about every country.'
|
|
9
|
-
gem.description = 'All sorts of useful information about every country.'
|
|
9
|
+
gem.description = 'All sorts of useful information about every country. It includes data from ISO3166-1, ISO3166-2 and E.164'
|
|
10
10
|
gem.email = "hexorx@gmail.com"
|
|
11
11
|
gem.homepage = "http://github.com/hexorx/countries"
|
|
12
12
|
gem.authors = ["hexorx"]
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.1.
|
|
1
|
+
0.1.1
|
data/countries.gemspec
ADDED
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
# Generated by jeweler
|
|
2
|
+
# DO NOT EDIT THIS FILE
|
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
|
|
4
|
+
# -*- encoding: utf-8 -*-
|
|
5
|
+
|
|
6
|
+
Gem::Specification.new do |s|
|
|
7
|
+
s.name = %q{countries}
|
|
8
|
+
s.version = "0.1.1"
|
|
9
|
+
|
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
11
|
+
s.authors = ["hexorx"]
|
|
12
|
+
s.date = %q{2009-12-26}
|
|
13
|
+
s.description = %q{All sorts of useful information about every country. It includes data from ISO3166-1, ISO3166-2 and E.164}
|
|
14
|
+
s.email = %q{hexorx@gmail.com}
|
|
15
|
+
s.extra_rdoc_files = [
|
|
16
|
+
"LICENSE",
|
|
17
|
+
"README.markdown"
|
|
18
|
+
]
|
|
19
|
+
s.files = [
|
|
20
|
+
".document",
|
|
21
|
+
".gitignore",
|
|
22
|
+
"LICENSE",
|
|
23
|
+
"README.markdown",
|
|
24
|
+
"Rakefile",
|
|
25
|
+
"VERSION",
|
|
26
|
+
"countries.gemspec",
|
|
27
|
+
"lib/countries.rb",
|
|
28
|
+
"lib/data/countries.yaml",
|
|
29
|
+
"lib/data/import.rb",
|
|
30
|
+
"lib/data/iso3166-1.csv",
|
|
31
|
+
"lib/data/iso3166-2.csv",
|
|
32
|
+
"lib/data/subdivisions/AD.yaml",
|
|
33
|
+
"lib/data/subdivisions/AE.yaml",
|
|
34
|
+
"lib/data/subdivisions/AF.yaml",
|
|
35
|
+
"lib/data/subdivisions/AG.yaml",
|
|
36
|
+
"lib/data/subdivisions/AL.yaml",
|
|
37
|
+
"lib/data/subdivisions/AM.yaml",
|
|
38
|
+
"lib/data/subdivisions/AO.yaml",
|
|
39
|
+
"lib/data/subdivisions/AR.yaml",
|
|
40
|
+
"lib/data/subdivisions/AT.yaml",
|
|
41
|
+
"lib/data/subdivisions/AU.yaml",
|
|
42
|
+
"lib/data/subdivisions/AZ.yaml",
|
|
43
|
+
"lib/data/subdivisions/BA.yaml",
|
|
44
|
+
"lib/data/subdivisions/BB.yaml",
|
|
45
|
+
"lib/data/subdivisions/BD.yaml",
|
|
46
|
+
"lib/data/subdivisions/BE.yaml",
|
|
47
|
+
"lib/data/subdivisions/BF.yaml",
|
|
48
|
+
"lib/data/subdivisions/BG.yaml",
|
|
49
|
+
"lib/data/subdivisions/BH.yaml",
|
|
50
|
+
"lib/data/subdivisions/BI.yaml",
|
|
51
|
+
"lib/data/subdivisions/BJ.yaml",
|
|
52
|
+
"lib/data/subdivisions/BN.yaml",
|
|
53
|
+
"lib/data/subdivisions/BO.yaml",
|
|
54
|
+
"lib/data/subdivisions/BR.yaml",
|
|
55
|
+
"lib/data/subdivisions/BS.yaml",
|
|
56
|
+
"lib/data/subdivisions/BT.yaml",
|
|
57
|
+
"lib/data/subdivisions/BW.yaml",
|
|
58
|
+
"lib/data/subdivisions/BY.yaml",
|
|
59
|
+
"lib/data/subdivisions/BZ.yaml",
|
|
60
|
+
"lib/data/subdivisions/CA.yaml",
|
|
61
|
+
"lib/data/subdivisions/CD.yaml",
|
|
62
|
+
"lib/data/subdivisions/CF.yaml",
|
|
63
|
+
"lib/data/subdivisions/CG.yaml",
|
|
64
|
+
"lib/data/subdivisions/CH.yaml",
|
|
65
|
+
"lib/data/subdivisions/CI.yaml",
|
|
66
|
+
"lib/data/subdivisions/CL.yaml",
|
|
67
|
+
"lib/data/subdivisions/CM.yaml",
|
|
68
|
+
"lib/data/subdivisions/CN.yaml",
|
|
69
|
+
"lib/data/subdivisions/CO.yaml",
|
|
70
|
+
"lib/data/subdivisions/CR.yaml",
|
|
71
|
+
"lib/data/subdivisions/CU.yaml",
|
|
72
|
+
"lib/data/subdivisions/CV.yaml",
|
|
73
|
+
"lib/data/subdivisions/CY.yaml",
|
|
74
|
+
"lib/data/subdivisions/CZ.yaml",
|
|
75
|
+
"lib/data/subdivisions/DE.yaml",
|
|
76
|
+
"lib/data/subdivisions/DJ.yaml",
|
|
77
|
+
"lib/data/subdivisions/DK.yaml",
|
|
78
|
+
"lib/data/subdivisions/DM.yaml",
|
|
79
|
+
"lib/data/subdivisions/DO.yaml",
|
|
80
|
+
"lib/data/subdivisions/DZ.yaml",
|
|
81
|
+
"lib/data/subdivisions/EC.yaml",
|
|
82
|
+
"lib/data/subdivisions/EE.yaml",
|
|
83
|
+
"lib/data/subdivisions/EG.yaml",
|
|
84
|
+
"lib/data/subdivisions/EH.yaml",
|
|
85
|
+
"lib/data/subdivisions/ER.yaml",
|
|
86
|
+
"lib/data/subdivisions/ES.yaml",
|
|
87
|
+
"lib/data/subdivisions/ET.yaml",
|
|
88
|
+
"lib/data/subdivisions/FI.yaml",
|
|
89
|
+
"lib/data/subdivisions/FJ.yaml",
|
|
90
|
+
"lib/data/subdivisions/FM.yaml",
|
|
91
|
+
"lib/data/subdivisions/FR.yaml",
|
|
92
|
+
"lib/data/subdivisions/GA.yaml",
|
|
93
|
+
"lib/data/subdivisions/GB.yaml",
|
|
94
|
+
"lib/data/subdivisions/GD.yaml",
|
|
95
|
+
"lib/data/subdivisions/GE.yaml",
|
|
96
|
+
"lib/data/subdivisions/GH.yaml",
|
|
97
|
+
"lib/data/subdivisions/GM.yaml",
|
|
98
|
+
"lib/data/subdivisions/GN.yaml",
|
|
99
|
+
"lib/data/subdivisions/GQ.yaml",
|
|
100
|
+
"lib/data/subdivisions/GR.yaml",
|
|
101
|
+
"lib/data/subdivisions/GT.yaml",
|
|
102
|
+
"lib/data/subdivisions/GW.yaml",
|
|
103
|
+
"lib/data/subdivisions/GY.yaml",
|
|
104
|
+
"lib/data/subdivisions/HN.yaml",
|
|
105
|
+
"lib/data/subdivisions/HR.yaml",
|
|
106
|
+
"lib/data/subdivisions/HT.yaml",
|
|
107
|
+
"lib/data/subdivisions/HU.yaml",
|
|
108
|
+
"lib/data/subdivisions/ID.yaml",
|
|
109
|
+
"lib/data/subdivisions/IE.yaml",
|
|
110
|
+
"lib/data/subdivisions/IL.yaml",
|
|
111
|
+
"lib/data/subdivisions/IN.yaml",
|
|
112
|
+
"lib/data/subdivisions/IQ.yaml",
|
|
113
|
+
"lib/data/subdivisions/IR.yaml",
|
|
114
|
+
"lib/data/subdivisions/IS.yaml",
|
|
115
|
+
"lib/data/subdivisions/IT.yaml",
|
|
116
|
+
"lib/data/subdivisions/JM.yaml",
|
|
117
|
+
"lib/data/subdivisions/JO.yaml",
|
|
118
|
+
"lib/data/subdivisions/JP.yaml",
|
|
119
|
+
"lib/data/subdivisions/KE.yaml",
|
|
120
|
+
"lib/data/subdivisions/KG.yaml",
|
|
121
|
+
"lib/data/subdivisions/KH.yaml",
|
|
122
|
+
"lib/data/subdivisions/KI.yaml",
|
|
123
|
+
"lib/data/subdivisions/KM.yaml",
|
|
124
|
+
"lib/data/subdivisions/KN.yaml",
|
|
125
|
+
"lib/data/subdivisions/KP.yaml",
|
|
126
|
+
"lib/data/subdivisions/KR.yaml",
|
|
127
|
+
"lib/data/subdivisions/KW.yaml",
|
|
128
|
+
"lib/data/subdivisions/KZ.yaml",
|
|
129
|
+
"lib/data/subdivisions/Ky.yaml",
|
|
130
|
+
"lib/data/subdivisions/LA.yaml",
|
|
131
|
+
"lib/data/subdivisions/LB.yaml",
|
|
132
|
+
"lib/data/subdivisions/LI.yaml",
|
|
133
|
+
"lib/data/subdivisions/LK.yaml",
|
|
134
|
+
"lib/data/subdivisions/LR.yaml",
|
|
135
|
+
"lib/data/subdivisions/LS.yaml",
|
|
136
|
+
"lib/data/subdivisions/LT.yaml",
|
|
137
|
+
"lib/data/subdivisions/LU.yaml",
|
|
138
|
+
"lib/data/subdivisions/LV.yaml",
|
|
139
|
+
"lib/data/subdivisions/LY.yaml",
|
|
140
|
+
"lib/data/subdivisions/MA.yaml",
|
|
141
|
+
"lib/data/subdivisions/MD.yaml",
|
|
142
|
+
"lib/data/subdivisions/ME.yaml",
|
|
143
|
+
"lib/data/subdivisions/MG.yaml",
|
|
144
|
+
"lib/data/subdivisions/MH.yaml",
|
|
145
|
+
"lib/data/subdivisions/MK.yaml",
|
|
146
|
+
"lib/data/subdivisions/ML.yaml",
|
|
147
|
+
"lib/data/subdivisions/MM.yaml",
|
|
148
|
+
"lib/data/subdivisions/MN.yaml",
|
|
149
|
+
"lib/data/subdivisions/MR.yaml",
|
|
150
|
+
"lib/data/subdivisions/MU.yaml",
|
|
151
|
+
"lib/data/subdivisions/MV.yaml",
|
|
152
|
+
"lib/data/subdivisions/MW.yaml",
|
|
153
|
+
"lib/data/subdivisions/MX.yaml",
|
|
154
|
+
"lib/data/subdivisions/MY.yaml",
|
|
155
|
+
"lib/data/subdivisions/MZ.yaml",
|
|
156
|
+
"lib/data/subdivisions/NA.yaml",
|
|
157
|
+
"lib/data/subdivisions/NE.yaml",
|
|
158
|
+
"lib/data/subdivisions/NG.yaml",
|
|
159
|
+
"lib/data/subdivisions/NI.yaml",
|
|
160
|
+
"lib/data/subdivisions/NL.yaml",
|
|
161
|
+
"lib/data/subdivisions/NO.yaml",
|
|
162
|
+
"lib/data/subdivisions/NP.yaml",
|
|
163
|
+
"lib/data/subdivisions/NR.yaml",
|
|
164
|
+
"lib/data/subdivisions/NZ.yaml",
|
|
165
|
+
"lib/data/subdivisions/OM.yaml",
|
|
166
|
+
"lib/data/subdivisions/PA.yaml",
|
|
167
|
+
"lib/data/subdivisions/PE.yaml",
|
|
168
|
+
"lib/data/subdivisions/PG.yaml",
|
|
169
|
+
"lib/data/subdivisions/PH.yaml",
|
|
170
|
+
"lib/data/subdivisions/PK.yaml",
|
|
171
|
+
"lib/data/subdivisions/PL.yaml",
|
|
172
|
+
"lib/data/subdivisions/PT.yaml",
|
|
173
|
+
"lib/data/subdivisions/PW.yaml",
|
|
174
|
+
"lib/data/subdivisions/PY.yaml",
|
|
175
|
+
"lib/data/subdivisions/QA.yaml",
|
|
176
|
+
"lib/data/subdivisions/RO.yaml",
|
|
177
|
+
"lib/data/subdivisions/RS.yaml",
|
|
178
|
+
"lib/data/subdivisions/RU.yaml",
|
|
179
|
+
"lib/data/subdivisions/RW.yaml",
|
|
180
|
+
"lib/data/subdivisions/SA.yaml",
|
|
181
|
+
"lib/data/subdivisions/SB.yaml",
|
|
182
|
+
"lib/data/subdivisions/SC.yaml",
|
|
183
|
+
"lib/data/subdivisions/SD.yaml",
|
|
184
|
+
"lib/data/subdivisions/SE.yaml",
|
|
185
|
+
"lib/data/subdivisions/SG.yaml",
|
|
186
|
+
"lib/data/subdivisions/SH.yaml",
|
|
187
|
+
"lib/data/subdivisions/SI.yaml",
|
|
188
|
+
"lib/data/subdivisions/SK.yaml",
|
|
189
|
+
"lib/data/subdivisions/SL.yaml",
|
|
190
|
+
"lib/data/subdivisions/SM.yaml",
|
|
191
|
+
"lib/data/subdivisions/SN.yaml",
|
|
192
|
+
"lib/data/subdivisions/SO.yaml",
|
|
193
|
+
"lib/data/subdivisions/SR.yaml",
|
|
194
|
+
"lib/data/subdivisions/ST.yaml",
|
|
195
|
+
"lib/data/subdivisions/SV.yaml",
|
|
196
|
+
"lib/data/subdivisions/SY.yaml",
|
|
197
|
+
"lib/data/subdivisions/SZ.yaml",
|
|
198
|
+
"lib/data/subdivisions/TD.yaml",
|
|
199
|
+
"lib/data/subdivisions/TF.yaml",
|
|
200
|
+
"lib/data/subdivisions/TG.yaml",
|
|
201
|
+
"lib/data/subdivisions/TH.yaml",
|
|
202
|
+
"lib/data/subdivisions/TL.yaml",
|
|
203
|
+
"lib/data/subdivisions/TM.yaml",
|
|
204
|
+
"lib/data/subdivisions/TN.yaml",
|
|
205
|
+
"lib/data/subdivisions/TO.yaml",
|
|
206
|
+
"lib/data/subdivisions/TR.yaml",
|
|
207
|
+
"lib/data/subdivisions/TT.yaml",
|
|
208
|
+
"lib/data/subdivisions/TV.yaml",
|
|
209
|
+
"lib/data/subdivisions/TW.yaml",
|
|
210
|
+
"lib/data/subdivisions/TZ.yaml",
|
|
211
|
+
"lib/data/subdivisions/Tj.yaml",
|
|
212
|
+
"lib/data/subdivisions/UA.yaml",
|
|
213
|
+
"lib/data/subdivisions/UG.yaml",
|
|
214
|
+
"lib/data/subdivisions/UM.yaml",
|
|
215
|
+
"lib/data/subdivisions/US.yaml",
|
|
216
|
+
"lib/data/subdivisions/UY.yaml",
|
|
217
|
+
"lib/data/subdivisions/UZ.yaml",
|
|
218
|
+
"lib/data/subdivisions/VC.yaml",
|
|
219
|
+
"lib/data/subdivisions/VE.yaml",
|
|
220
|
+
"lib/data/subdivisions/VN.yaml",
|
|
221
|
+
"lib/data/subdivisions/VU.yaml",
|
|
222
|
+
"lib/data/subdivisions/WS.yaml",
|
|
223
|
+
"lib/data/subdivisions/YE.yaml",
|
|
224
|
+
"lib/data/subdivisions/ZA.yaml",
|
|
225
|
+
"lib/data/subdivisions/ZM.yaml",
|
|
226
|
+
"lib/data/subdivisions/ZW.yaml",
|
|
227
|
+
"spec/countries_spec.rb",
|
|
228
|
+
"spec/spec_helper.rb"
|
|
229
|
+
]
|
|
230
|
+
s.homepage = %q{http://github.com/hexorx/countries}
|
|
231
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
|
232
|
+
s.require_paths = ["lib"]
|
|
233
|
+
s.rubygems_version = %q{1.3.5}
|
|
234
|
+
s.summary = %q{All sorts of useful information about every country.}
|
|
235
|
+
s.test_files = [
|
|
236
|
+
"spec/countries_spec.rb",
|
|
237
|
+
"spec/spec_helper.rb"
|
|
238
|
+
]
|
|
239
|
+
|
|
240
|
+
if s.respond_to? :specification_version then
|
|
241
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
|
242
|
+
s.specification_version = 3
|
|
243
|
+
|
|
244
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
|
245
|
+
s.add_development_dependency(%q<rspec>, [">= 0"])
|
|
246
|
+
s.add_development_dependency(%q<yard>, [">= 0"])
|
|
247
|
+
else
|
|
248
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
|
249
|
+
s.add_dependency(%q<yard>, [">= 0"])
|
|
250
|
+
end
|
|
251
|
+
else
|
|
252
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
|
253
|
+
s.add_dependency(%q<yard>, [">= 0"])
|
|
254
|
+
end
|
|
255
|
+
end
|
data/lib/countries.rb
CHANGED
|
@@ -22,10 +22,19 @@ class Country
|
|
|
22
22
|
@national_prefix = data['e164_national_prefix']
|
|
23
23
|
end
|
|
24
24
|
|
|
25
|
-
def self.
|
|
26
|
-
Country.new(Data[
|
|
25
|
+
def self.search(query)
|
|
26
|
+
Country.new(Data[query])
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def self.[](query)
|
|
30
|
+
self.search(query)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def subdivisions
|
|
34
|
+
@subdivisions ||= subdivisions? ? File.open("lib/data/subdivisions/#{alpha2}.yaml") {|yaml| YAML::load( yaml )} : {}
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def subdivisions?
|
|
38
|
+
File.exist?("lib/data/subdivisions/#{alpha2}.yaml")
|
|
27
39
|
end
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
class State
|
|
31
40
|
end
|
data/spec/countries_spec.rb
CHANGED
|
@@ -2,7 +2,7 @@ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
|
|
2
2
|
|
|
3
3
|
describe Country do
|
|
4
4
|
before(:all) do
|
|
5
|
-
@country = Country
|
|
5
|
+
@country = Country.search('US')
|
|
6
6
|
end
|
|
7
7
|
|
|
8
8
|
it 'should return 3166 number' do
|
|
@@ -63,9 +63,19 @@ describe Country do
|
|
|
63
63
|
end
|
|
64
64
|
end
|
|
65
65
|
|
|
66
|
-
describe '
|
|
67
|
-
it 'should return
|
|
68
|
-
Country
|
|
66
|
+
describe '.subdivisions' do
|
|
67
|
+
it 'should return an empty hash for a country with no ISO3166-2' do
|
|
68
|
+
Country.search('VA').subdivisions.should have(0).subdivisions
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
it 'should return a hash with all sub divisions' do
|
|
72
|
+
@country.subdivisions.should have(57).states
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
describe '.search' do
|
|
77
|
+
it 'should return new country object when a valid alpha2 is passed' do
|
|
78
|
+
Country.search('US').should be_a(Country)
|
|
69
79
|
end
|
|
70
80
|
end
|
|
71
81
|
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.1.
|
|
4
|
+
version: 0.1.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- hexorx
|
|
@@ -9,7 +9,7 @@ autorequire:
|
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
11
|
|
|
12
|
-
date: 2009-12-
|
|
12
|
+
date: 2009-12-26 00:00:00 -07:00
|
|
13
13
|
default_executable:
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
@@ -32,7 +32,7 @@ dependencies:
|
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
33
|
version: "0"
|
|
34
34
|
version:
|
|
35
|
-
description: All sorts of useful information about every country.
|
|
35
|
+
description: All sorts of useful information about every country. It includes data from ISO3166-1, ISO3166-2 and E.164
|
|
36
36
|
email: hexorx@gmail.com
|
|
37
37
|
executables: []
|
|
38
38
|
|
|
@@ -48,6 +48,7 @@ files:
|
|
|
48
48
|
- README.markdown
|
|
49
49
|
- Rakefile
|
|
50
50
|
- VERSION
|
|
51
|
+
- countries.gemspec
|
|
51
52
|
- lib/countries.rb
|
|
52
53
|
- lib/data/countries.yaml
|
|
53
54
|
- lib/data/import.rb
|