countries 0.3.0 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.rvmrc +1 -0
- data/Gemfile +9 -0
- data/Gemfile.lock +24 -0
- data/README.markdown +13 -2
- data/Rakefile +0 -2
- data/VERSION +1 -1
- data/countries.gemspec +231 -216
- data/lib/countries.rb +2 -4
- data/lib/countries/country.rb +21 -13
- data/lib/iso3166.rb +7 -0
- data/spec/country_spec.rb +90 -42
- data/spec/spec_helper.rb +1 -1
- metadata +112 -19
- data/.gitignore +0 -6
data/.rvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm ruby@countries
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
GEM
|
2
|
+
remote: http://rubygems.org/
|
3
|
+
specs:
|
4
|
+
currencies (0.4.0)
|
5
|
+
gemcutter (0.6.1)
|
6
|
+
git (1.2.5)
|
7
|
+
jeweler (1.4.0)
|
8
|
+
gemcutter (>= 0.1.0)
|
9
|
+
git (>= 1.2.5)
|
10
|
+
rubyforge (>= 2.0.0)
|
11
|
+
json_pure (1.5.1)
|
12
|
+
rspec (1.3.1)
|
13
|
+
rubyforge (2.0.4)
|
14
|
+
json_pure (>= 1.1.7)
|
15
|
+
yard (0.6.4)
|
16
|
+
|
17
|
+
PLATFORMS
|
18
|
+
ruby
|
19
|
+
|
20
|
+
DEPENDENCIES
|
21
|
+
currencies (= 0.4.0)
|
22
|
+
jeweler (= 1.4.0)
|
23
|
+
rspec (= 1.3.1)
|
24
|
+
yard (= 0.6.4)
|
data/README.markdown
CHANGED
@@ -15,7 +15,15 @@ Countries is hosted on GemCutter, so simply run the following:
|
|
15
15
|
|
16
16
|
gem sources -a http://gemcutter.org
|
17
17
|
sudo gem install countries
|
18
|
-
|
18
|
+
|
19
|
+
Or you can install via bundler Gemfile:
|
20
|
+
|
21
|
+
gem 'countries'
|
22
|
+
|
23
|
+
Or you can install via bundler Gemfile with using only ISO3166::Country (no Country class):
|
24
|
+
|
25
|
+
gem 'countries', :require => 'iso3166'
|
26
|
+
|
19
27
|
Country Select Helper
|
20
28
|
---------------------
|
21
29
|
|
@@ -24,6 +32,9 @@ As a bonus if you add the gem to a rails project it automatically gives you a co
|
|
24
32
|
Basic Usage
|
25
33
|
-----------
|
26
34
|
|
35
|
+
Note that Country class still exist by default.
|
36
|
+
(is inherited from ISO3166::Country to keep backward compatibility).
|
37
|
+
|
27
38
|
Simply load a new country object using Country.new(*alpha2*) or the shortcut Country[*alpha2*]. An example works best.
|
28
39
|
|
29
40
|
c = Country.new('US')
|
@@ -115,4 +126,4 @@ Copyright (c) 2009 hexorx. See LICENSE for details.
|
|
115
126
|
[Centrex]: http://en.wikipedia.org/wiki/Centrex
|
116
127
|
[CommonDataHub]: http://commondatahub.com
|
117
128
|
[Currencies]: http://gemcutter.org/gems/currencies
|
118
|
-
[Money]: http://gemcutter.org/gems/money
|
129
|
+
[Money]: http://gemcutter.org/gems/money
|
data/Rakefile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.5.0
|
data/countries.gemspec
CHANGED
@@ -1,257 +1,272 @@
|
|
1
1
|
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{countries}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.5.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["hexorx"]
|
12
|
-
s.date = %q{
|
12
|
+
s.date = %q{2011-02-14}
|
13
13
|
s.description = %q{All sorts of useful information about every country packaged as pretty little country objects. It includes data from ISO 3166 (countries and subdivisions), ISO 4217 (currency), and E.164 (phone numbers). As a bonus it even adds a country_select helper to rails projects.}
|
14
14
|
s.email = %q{hexorx@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE",
|
17
|
-
|
17
|
+
"README.markdown"
|
18
18
|
]
|
19
19
|
s.files = [
|
20
20
|
".document",
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
21
|
+
".rvmrc",
|
22
|
+
"Gemfile",
|
23
|
+
"Gemfile.lock",
|
24
|
+
"LICENSE",
|
25
|
+
"README.markdown",
|
26
|
+
"Rakefile",
|
27
|
+
"VERSION",
|
28
|
+
"countries.gemspec",
|
29
|
+
"lib/countries.rb",
|
30
|
+
"lib/countries/country.rb",
|
31
|
+
"lib/countries/select_helper.rb",
|
32
|
+
"lib/data/countries.yaml",
|
33
|
+
"lib/data/subdivisions/AD.yaml",
|
34
|
+
"lib/data/subdivisions/AE.yaml",
|
35
|
+
"lib/data/subdivisions/AF.yaml",
|
36
|
+
"lib/data/subdivisions/AG.yaml",
|
37
|
+
"lib/data/subdivisions/AL.yaml",
|
38
|
+
"lib/data/subdivisions/AM.yaml",
|
39
|
+
"lib/data/subdivisions/AO.yaml",
|
40
|
+
"lib/data/subdivisions/AR.yaml",
|
41
|
+
"lib/data/subdivisions/AT.yaml",
|
42
|
+
"lib/data/subdivisions/AU.yaml",
|
43
|
+
"lib/data/subdivisions/AZ.yaml",
|
44
|
+
"lib/data/subdivisions/BA.yaml",
|
45
|
+
"lib/data/subdivisions/BB.yaml",
|
46
|
+
"lib/data/subdivisions/BD.yaml",
|
47
|
+
"lib/data/subdivisions/BE.yaml",
|
48
|
+
"lib/data/subdivisions/BF.yaml",
|
49
|
+
"lib/data/subdivisions/BG.yaml",
|
50
|
+
"lib/data/subdivisions/BH.yaml",
|
51
|
+
"lib/data/subdivisions/BI.yaml",
|
52
|
+
"lib/data/subdivisions/BJ.yaml",
|
53
|
+
"lib/data/subdivisions/BN.yaml",
|
54
|
+
"lib/data/subdivisions/BO.yaml",
|
55
|
+
"lib/data/subdivisions/BR.yaml",
|
56
|
+
"lib/data/subdivisions/BS.yaml",
|
57
|
+
"lib/data/subdivisions/BT.yaml",
|
58
|
+
"lib/data/subdivisions/BW.yaml",
|
59
|
+
"lib/data/subdivisions/BY.yaml",
|
60
|
+
"lib/data/subdivisions/BZ.yaml",
|
61
|
+
"lib/data/subdivisions/CA.yaml",
|
62
|
+
"lib/data/subdivisions/CD.yaml",
|
63
|
+
"lib/data/subdivisions/CF.yaml",
|
64
|
+
"lib/data/subdivisions/CG.yaml",
|
65
|
+
"lib/data/subdivisions/CH.yaml",
|
66
|
+
"lib/data/subdivisions/CI.yaml",
|
67
|
+
"lib/data/subdivisions/CL.yaml",
|
68
|
+
"lib/data/subdivisions/CM.yaml",
|
69
|
+
"lib/data/subdivisions/CN.yaml",
|
70
|
+
"lib/data/subdivisions/CO.yaml",
|
71
|
+
"lib/data/subdivisions/CR.yaml",
|
72
|
+
"lib/data/subdivisions/CU.yaml",
|
73
|
+
"lib/data/subdivisions/CV.yaml",
|
74
|
+
"lib/data/subdivisions/CY.yaml",
|
75
|
+
"lib/data/subdivisions/CZ.yaml",
|
76
|
+
"lib/data/subdivisions/DE.yaml",
|
77
|
+
"lib/data/subdivisions/DJ.yaml",
|
78
|
+
"lib/data/subdivisions/DK.yaml",
|
79
|
+
"lib/data/subdivisions/DM.yaml",
|
80
|
+
"lib/data/subdivisions/DO.yaml",
|
81
|
+
"lib/data/subdivisions/DZ.yaml",
|
82
|
+
"lib/data/subdivisions/EC.yaml",
|
83
|
+
"lib/data/subdivisions/EE.yaml",
|
84
|
+
"lib/data/subdivisions/EG.yaml",
|
85
|
+
"lib/data/subdivisions/EH.yaml",
|
86
|
+
"lib/data/subdivisions/ER.yaml",
|
87
|
+
"lib/data/subdivisions/ES.yaml",
|
88
|
+
"lib/data/subdivisions/ET.yaml",
|
89
|
+
"lib/data/subdivisions/FI.yaml",
|
90
|
+
"lib/data/subdivisions/FJ.yaml",
|
91
|
+
"lib/data/subdivisions/FM.yaml",
|
92
|
+
"lib/data/subdivisions/FR.yaml",
|
93
|
+
"lib/data/subdivisions/GA.yaml",
|
94
|
+
"lib/data/subdivisions/GB.yaml",
|
95
|
+
"lib/data/subdivisions/GD.yaml",
|
96
|
+
"lib/data/subdivisions/GE.yaml",
|
97
|
+
"lib/data/subdivisions/GH.yaml",
|
98
|
+
"lib/data/subdivisions/GM.yaml",
|
99
|
+
"lib/data/subdivisions/GN.yaml",
|
100
|
+
"lib/data/subdivisions/GQ.yaml",
|
101
|
+
"lib/data/subdivisions/GR.yaml",
|
102
|
+
"lib/data/subdivisions/GT.yaml",
|
103
|
+
"lib/data/subdivisions/GW.yaml",
|
104
|
+
"lib/data/subdivisions/GY.yaml",
|
105
|
+
"lib/data/subdivisions/HN.yaml",
|
106
|
+
"lib/data/subdivisions/HR.yaml",
|
107
|
+
"lib/data/subdivisions/HT.yaml",
|
108
|
+
"lib/data/subdivisions/HU.yaml",
|
109
|
+
"lib/data/subdivisions/ID.yaml",
|
110
|
+
"lib/data/subdivisions/IE.yaml",
|
111
|
+
"lib/data/subdivisions/IL.yaml",
|
112
|
+
"lib/data/subdivisions/IN.yaml",
|
113
|
+
"lib/data/subdivisions/IQ.yaml",
|
114
|
+
"lib/data/subdivisions/IR.yaml",
|
115
|
+
"lib/data/subdivisions/IS.yaml",
|
116
|
+
"lib/data/subdivisions/IT.yaml",
|
117
|
+
"lib/data/subdivisions/JM.yaml",
|
118
|
+
"lib/data/subdivisions/JO.yaml",
|
119
|
+
"lib/data/subdivisions/JP.yaml",
|
120
|
+
"lib/data/subdivisions/KE.yaml",
|
121
|
+
"lib/data/subdivisions/KG.yaml",
|
122
|
+
"lib/data/subdivisions/KH.yaml",
|
123
|
+
"lib/data/subdivisions/KI.yaml",
|
124
|
+
"lib/data/subdivisions/KM.yaml",
|
125
|
+
"lib/data/subdivisions/KN.yaml",
|
126
|
+
"lib/data/subdivisions/KP.yaml",
|
127
|
+
"lib/data/subdivisions/KR.yaml",
|
128
|
+
"lib/data/subdivisions/KW.yaml",
|
129
|
+
"lib/data/subdivisions/KZ.yaml",
|
130
|
+
"lib/data/subdivisions/Ky.yaml",
|
131
|
+
"lib/data/subdivisions/LA.yaml",
|
132
|
+
"lib/data/subdivisions/LB.yaml",
|
133
|
+
"lib/data/subdivisions/LI.yaml",
|
134
|
+
"lib/data/subdivisions/LK.yaml",
|
135
|
+
"lib/data/subdivisions/LR.yaml",
|
136
|
+
"lib/data/subdivisions/LS.yaml",
|
137
|
+
"lib/data/subdivisions/LT.yaml",
|
138
|
+
"lib/data/subdivisions/LU.yaml",
|
139
|
+
"lib/data/subdivisions/LV.yaml",
|
140
|
+
"lib/data/subdivisions/LY.yaml",
|
141
|
+
"lib/data/subdivisions/MA.yaml",
|
142
|
+
"lib/data/subdivisions/MD.yaml",
|
143
|
+
"lib/data/subdivisions/ME.yaml",
|
144
|
+
"lib/data/subdivisions/MG.yaml",
|
145
|
+
"lib/data/subdivisions/MH.yaml",
|
146
|
+
"lib/data/subdivisions/MK.yaml",
|
147
|
+
"lib/data/subdivisions/ML.yaml",
|
148
|
+
"lib/data/subdivisions/MM.yaml",
|
149
|
+
"lib/data/subdivisions/MN.yaml",
|
150
|
+
"lib/data/subdivisions/MR.yaml",
|
151
|
+
"lib/data/subdivisions/MU.yaml",
|
152
|
+
"lib/data/subdivisions/MV.yaml",
|
153
|
+
"lib/data/subdivisions/MW.yaml",
|
154
|
+
"lib/data/subdivisions/MX.yaml",
|
155
|
+
"lib/data/subdivisions/MY.yaml",
|
156
|
+
"lib/data/subdivisions/MZ.yaml",
|
157
|
+
"lib/data/subdivisions/NA.yaml",
|
158
|
+
"lib/data/subdivisions/NE.yaml",
|
159
|
+
"lib/data/subdivisions/NG.yaml",
|
160
|
+
"lib/data/subdivisions/NI.yaml",
|
161
|
+
"lib/data/subdivisions/NL.yaml",
|
162
|
+
"lib/data/subdivisions/NO.yaml",
|
163
|
+
"lib/data/subdivisions/NP.yaml",
|
164
|
+
"lib/data/subdivisions/NR.yaml",
|
165
|
+
"lib/data/subdivisions/NZ.yaml",
|
166
|
+
"lib/data/subdivisions/OM.yaml",
|
167
|
+
"lib/data/subdivisions/PA.yaml",
|
168
|
+
"lib/data/subdivisions/PE.yaml",
|
169
|
+
"lib/data/subdivisions/PG.yaml",
|
170
|
+
"lib/data/subdivisions/PH.yaml",
|
171
|
+
"lib/data/subdivisions/PK.yaml",
|
172
|
+
"lib/data/subdivisions/PL.yaml",
|
173
|
+
"lib/data/subdivisions/PT.yaml",
|
174
|
+
"lib/data/subdivisions/PW.yaml",
|
175
|
+
"lib/data/subdivisions/PY.yaml",
|
176
|
+
"lib/data/subdivisions/QA.yaml",
|
177
|
+
"lib/data/subdivisions/RO.yaml",
|
178
|
+
"lib/data/subdivisions/RS.yaml",
|
179
|
+
"lib/data/subdivisions/RU.yaml",
|
180
|
+
"lib/data/subdivisions/RW.yaml",
|
181
|
+
"lib/data/subdivisions/SA.yaml",
|
182
|
+
"lib/data/subdivisions/SB.yaml",
|
183
|
+
"lib/data/subdivisions/SC.yaml",
|
184
|
+
"lib/data/subdivisions/SD.yaml",
|
185
|
+
"lib/data/subdivisions/SE.yaml",
|
186
|
+
"lib/data/subdivisions/SG.yaml",
|
187
|
+
"lib/data/subdivisions/SH.yaml",
|
188
|
+
"lib/data/subdivisions/SI.yaml",
|
189
|
+
"lib/data/subdivisions/SK.yaml",
|
190
|
+
"lib/data/subdivisions/SL.yaml",
|
191
|
+
"lib/data/subdivisions/SM.yaml",
|
192
|
+
"lib/data/subdivisions/SN.yaml",
|
193
|
+
"lib/data/subdivisions/SO.yaml",
|
194
|
+
"lib/data/subdivisions/SR.yaml",
|
195
|
+
"lib/data/subdivisions/ST.yaml",
|
196
|
+
"lib/data/subdivisions/SV.yaml",
|
197
|
+
"lib/data/subdivisions/SY.yaml",
|
198
|
+
"lib/data/subdivisions/SZ.yaml",
|
199
|
+
"lib/data/subdivisions/TD.yaml",
|
200
|
+
"lib/data/subdivisions/TF.yaml",
|
201
|
+
"lib/data/subdivisions/TG.yaml",
|
202
|
+
"lib/data/subdivisions/TH.yaml",
|
203
|
+
"lib/data/subdivisions/TL.yaml",
|
204
|
+
"lib/data/subdivisions/TM.yaml",
|
205
|
+
"lib/data/subdivisions/TN.yaml",
|
206
|
+
"lib/data/subdivisions/TO.yaml",
|
207
|
+
"lib/data/subdivisions/TR.yaml",
|
208
|
+
"lib/data/subdivisions/TT.yaml",
|
209
|
+
"lib/data/subdivisions/TV.yaml",
|
210
|
+
"lib/data/subdivisions/TW.yaml",
|
211
|
+
"lib/data/subdivisions/TZ.yaml",
|
212
|
+
"lib/data/subdivisions/Tj.yaml",
|
213
|
+
"lib/data/subdivisions/UA.yaml",
|
214
|
+
"lib/data/subdivisions/UG.yaml",
|
215
|
+
"lib/data/subdivisions/UM.yaml",
|
216
|
+
"lib/data/subdivisions/US.yaml",
|
217
|
+
"lib/data/subdivisions/UY.yaml",
|
218
|
+
"lib/data/subdivisions/UZ.yaml",
|
219
|
+
"lib/data/subdivisions/VC.yaml",
|
220
|
+
"lib/data/subdivisions/VE.yaml",
|
221
|
+
"lib/data/subdivisions/VN.yaml",
|
222
|
+
"lib/data/subdivisions/VU.yaml",
|
223
|
+
"lib/data/subdivisions/WS.yaml",
|
224
|
+
"lib/data/subdivisions/YE.yaml",
|
225
|
+
"lib/data/subdivisions/ZA.yaml",
|
226
|
+
"lib/data/subdivisions/ZM.yaml",
|
227
|
+
"lib/data/subdivisions/ZW.yaml",
|
228
|
+
"lib/iso3166.rb",
|
229
|
+
"spec/country_spec.rb",
|
230
|
+
"spec/spec_helper.rb"
|
228
231
|
]
|
229
232
|
s.homepage = %q{http://github.com/hexorx/countries}
|
230
|
-
s.rdoc_options = ["--charset=UTF-8"]
|
231
233
|
s.require_paths = ["lib"]
|
232
|
-
s.rubygems_version = %q{1.3.
|
234
|
+
s.rubygems_version = %q{1.3.7}
|
233
235
|
s.summary = %q{Gives you a country object full of all sorts of useful information.}
|
234
236
|
s.test_files = [
|
235
237
|
"spec/country_spec.rb",
|
236
|
-
|
238
|
+
"spec/spec_helper.rb"
|
237
239
|
]
|
238
240
|
|
239
241
|
if s.respond_to? :specification_version then
|
240
242
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
241
243
|
s.specification_version = 3
|
242
244
|
|
243
|
-
if Gem::Version.new(Gem::
|
245
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
246
|
+
s.add_runtime_dependency(%q<jeweler>, ["= 1.4.0"])
|
247
|
+
s.add_runtime_dependency(%q<rspec>, ["= 1.3.1"])
|
248
|
+
s.add_runtime_dependency(%q<currencies>, ["= 0.4.0"])
|
249
|
+
s.add_runtime_dependency(%q<yard>, ["= 0.6.4"])
|
244
250
|
s.add_runtime_dependency(%q<currencies>, [">= 0.2.0"])
|
245
251
|
s.add_development_dependency(%q<rspec>, [">= 0"])
|
246
252
|
s.add_development_dependency(%q<yard>, [">= 0"])
|
247
253
|
else
|
254
|
+
s.add_dependency(%q<jeweler>, ["= 1.4.0"])
|
255
|
+
s.add_dependency(%q<rspec>, ["= 1.3.1"])
|
256
|
+
s.add_dependency(%q<currencies>, ["= 0.4.0"])
|
257
|
+
s.add_dependency(%q<yard>, ["= 0.6.4"])
|
248
258
|
s.add_dependency(%q<currencies>, [">= 0.2.0"])
|
249
259
|
s.add_dependency(%q<rspec>, [">= 0"])
|
250
260
|
s.add_dependency(%q<yard>, [">= 0"])
|
251
261
|
end
|
252
262
|
else
|
263
|
+
s.add_dependency(%q<jeweler>, ["= 1.4.0"])
|
264
|
+
s.add_dependency(%q<rspec>, ["= 1.3.1"])
|
265
|
+
s.add_dependency(%q<currencies>, ["= 0.4.0"])
|
266
|
+
s.add_dependency(%q<yard>, ["= 0.6.4"])
|
253
267
|
s.add_dependency(%q<currencies>, [">= 0.2.0"])
|
254
268
|
s.add_dependency(%q<rspec>, [">= 0"])
|
255
269
|
s.add_dependency(%q<yard>, [">= 0"])
|
256
270
|
end
|
257
271
|
end
|
272
|
+
|
data/lib/countries.rb
CHANGED
data/lib/countries/country.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
|
-
|
1
|
+
module ISO3166; end
|
2
|
+
|
3
|
+
class ISO3166::Country
|
2
4
|
attr_reader :data
|
3
|
-
|
5
|
+
|
4
6
|
AttrReaders = [
|
5
7
|
:number,
|
6
8
|
:alpha2,
|
@@ -18,38 +20,44 @@ class Country
|
|
18
20
|
:national_prefix,
|
19
21
|
:address_format
|
20
22
|
]
|
21
|
-
|
23
|
+
|
22
24
|
AttrReaders.each do |meth|
|
23
25
|
define_method meth do
|
24
26
|
@data[meth.to_s]
|
25
27
|
end
|
26
28
|
end
|
27
|
-
|
29
|
+
|
28
30
|
Data = YAML.load_file(File.join(File.dirname(__FILE__), '..', 'data', 'countries.yaml')) || {}
|
29
31
|
Names = Data.map {|k,v| [v['name'],k]}.sort
|
30
32
|
NameIndex = Hash[*Names.flatten]
|
31
|
-
|
33
|
+
|
32
34
|
def initialize(country_code)
|
33
35
|
@data = Data[country_code]
|
34
36
|
end
|
35
|
-
|
37
|
+
|
36
38
|
def currency
|
37
|
-
Currency.from_code(@data['currency'])
|
39
|
+
ISO4217::Currency.from_code(@data['currency'])
|
38
40
|
end
|
39
|
-
|
41
|
+
|
40
42
|
def self.search(query)
|
41
|
-
|
43
|
+
self.new(query)
|
42
44
|
end
|
43
|
-
|
45
|
+
|
44
46
|
def self.[](query)
|
45
47
|
self.search(query)
|
46
48
|
end
|
47
|
-
|
49
|
+
|
50
|
+
def self.find_by_name(name)
|
51
|
+
Data.select do |k,v|
|
52
|
+
v["name"] == name || v["names"].include?(name)
|
53
|
+
end.first
|
54
|
+
end
|
55
|
+
|
48
56
|
def subdivisions
|
49
57
|
@subdivisions ||= subdivisions? ? YAML.load_file(File.join(File.dirname(__FILE__), '..', 'data', 'subdivisions', "#{alpha2}.yaml")) : {}
|
50
58
|
end
|
51
|
-
|
59
|
+
|
52
60
|
def subdivisions?
|
53
61
|
File.exist?(File.join(File.dirname(__FILE__), '..', 'data', 'subdivisions', "#{alpha2}.yaml"))
|
54
62
|
end
|
55
|
-
end
|
63
|
+
end
|
data/lib/iso3166.rb
ADDED
data/spec/country_spec.rb
CHANGED
@@ -1,91 +1,139 @@
|
|
1
1
|
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
2
|
|
3
|
-
describe Country do
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
3
|
+
describe ISO3166::Country do
|
4
|
+
|
5
|
+
let(:country) { ISO3166::Country.search('US') }
|
6
|
+
|
8
7
|
it 'should return 3166 number' do
|
9
|
-
|
8
|
+
country.number.should == '840'
|
10
9
|
end
|
11
|
-
|
10
|
+
|
12
11
|
it 'should return 3166 alpha2 code' do
|
13
|
-
|
12
|
+
country.alpha2.should == 'US'
|
14
13
|
end
|
15
|
-
|
14
|
+
|
16
15
|
it 'should return 3166 alpha3 code' do
|
17
|
-
|
16
|
+
country.alpha3.should == 'USA'
|
18
17
|
end
|
19
|
-
|
18
|
+
|
20
19
|
it 'should return 3166 name' do
|
21
|
-
|
20
|
+
country.name.should == 'United States'
|
22
21
|
end
|
23
|
-
|
22
|
+
|
24
23
|
it 'should return alternate names' do
|
25
|
-
|
24
|
+
country.names.should == ["United States of America", "Vereinigte Staaten von Amerika", "États-Unis", "Estados Unidos"]
|
26
25
|
end
|
27
|
-
|
26
|
+
|
28
27
|
it 'should return latitude' do
|
29
|
-
|
28
|
+
country.latitude.should == '38 00 N'
|
30
29
|
end
|
31
|
-
|
30
|
+
|
32
31
|
it 'should return longitude' do
|
33
|
-
|
32
|
+
country.longitude.should == '97 00 W'
|
34
33
|
end
|
35
34
|
|
36
35
|
it 'should return region' do
|
37
|
-
|
36
|
+
country.region.should == 'Americas'
|
38
37
|
end
|
39
38
|
|
40
39
|
it 'should return subregion' do
|
41
|
-
|
40
|
+
country.subregion.should == 'Northern America'
|
42
41
|
end
|
43
|
-
|
42
|
+
|
44
43
|
describe 'e164' do
|
45
44
|
it 'should return country_code' do
|
46
|
-
|
45
|
+
country.country_code.should == '1'
|
47
46
|
end
|
48
|
-
|
47
|
+
|
49
48
|
it 'should return national_destination_code_lengths' do
|
50
|
-
|
49
|
+
country.national_destination_code_lengths.should == [3]
|
51
50
|
end
|
52
|
-
|
51
|
+
|
53
52
|
it 'should return national_number_lengths' do
|
54
|
-
|
55
|
-
end
|
56
|
-
|
53
|
+
country.national_number_lengths.should == [10]
|
54
|
+
end
|
55
|
+
|
57
56
|
it 'should return international_prefix' do
|
58
|
-
|
59
|
-
end
|
60
|
-
|
57
|
+
country.international_prefix.should == '011'
|
58
|
+
end
|
59
|
+
|
61
60
|
it 'should return national_prefix' do
|
62
|
-
|
61
|
+
country.national_prefix.should == '1'
|
63
62
|
end
|
64
63
|
end
|
65
|
-
|
64
|
+
|
66
65
|
describe 'subdivisions' do
|
67
66
|
it 'should return an empty hash for a country with no ISO3166-2' do
|
68
|
-
Country.search('VA').subdivisions.should have(0).subdivisions
|
67
|
+
ISO3166::Country.search('VA').subdivisions.should have(0).subdivisions
|
69
68
|
end
|
70
|
-
|
69
|
+
|
71
70
|
it 'should return a hash with all sub divisions' do
|
72
|
-
|
71
|
+
country.subdivisions.should have(57).states
|
73
72
|
end
|
74
73
|
end
|
75
|
-
|
74
|
+
|
76
75
|
describe 'search' do
|
77
76
|
it 'should return new country object when a valid alpha2 is passed' do
|
78
|
-
Country.search('US').should be_a(Country)
|
77
|
+
ISO3166::Country.search('US').should be_a(ISO3166::Country)
|
79
78
|
end
|
80
79
|
end
|
81
|
-
|
80
|
+
|
82
81
|
describe 'currency' do
|
83
82
|
it 'should return an instance of Currency' do
|
84
|
-
|
83
|
+
country.currency.should be_a(ISO4217::Currency)
|
85
84
|
end
|
86
|
-
|
85
|
+
|
87
86
|
it 'should allow access to symbol' do
|
88
|
-
|
87
|
+
country.currency[:symbol].should == '$'
|
89
88
|
end
|
90
89
|
end
|
90
|
+
|
91
|
+
describe "Country class" do
|
92
|
+
context "when loaded via 'iso3166' existance" do
|
93
|
+
subject { defined?(Country) }
|
94
|
+
|
95
|
+
it { should be_false }
|
96
|
+
end
|
97
|
+
|
98
|
+
context "when loaded via 'countries'" do
|
99
|
+
before { require 'countries' }
|
100
|
+
|
101
|
+
describe "existance" do
|
102
|
+
subject { defined?(Country) }
|
103
|
+
|
104
|
+
it { should be_true }
|
105
|
+
end
|
106
|
+
|
107
|
+
describe "superclass" do
|
108
|
+
subject { Country.superclass }
|
109
|
+
|
110
|
+
it { should == ISO3166::Country }
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
describe ".find_by_name" do
|
116
|
+
context "when search name in 'name'" do
|
117
|
+
subject { ISO3166::Country.find_by_name("Poland") }
|
118
|
+
|
119
|
+
its(:first) { should == "PL" }
|
120
|
+
end
|
121
|
+
|
122
|
+
context "when search name in 'names'" do
|
123
|
+
subject { ISO3166::Country.find_by_name("Polonia") }
|
124
|
+
|
125
|
+
its(:first) { should == "PL" }
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
describe "names in Data" do
|
130
|
+
it "should be unique (to allow .find_by_name work properly)" do
|
131
|
+
names = ISO3166::Country::Data.collect do |k,v|
|
132
|
+
[v["name"], v["names"]].flatten.uniq
|
133
|
+
end.flatten
|
134
|
+
|
135
|
+
names.size.should == names.uniq.size
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
91
139
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: countries
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 11
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 5
|
9
|
+
- 0
|
10
|
+
version: 0.5.0
|
5
11
|
platform: ruby
|
6
12
|
authors:
|
7
13
|
- hexorx
|
@@ -9,39 +15,117 @@ autorequire:
|
|
9
15
|
bindir: bin
|
10
16
|
cert_chain: []
|
11
17
|
|
12
|
-
date:
|
18
|
+
date: 2011-02-14 00:00:00 -07:00
|
13
19
|
default_executable:
|
14
20
|
dependencies:
|
15
21
|
- !ruby/object:Gem::Dependency
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
name: jeweler
|
25
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
27
|
+
requirements:
|
28
|
+
- - "="
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
hash: 7
|
31
|
+
segments:
|
32
|
+
- 1
|
33
|
+
- 4
|
34
|
+
- 0
|
35
|
+
version: 1.4.0
|
36
|
+
requirement: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
name: rspec
|
41
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
43
|
+
requirements:
|
44
|
+
- - "="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
hash: 25
|
47
|
+
segments:
|
48
|
+
- 1
|
49
|
+
- 3
|
50
|
+
- 1
|
51
|
+
version: 1.3.1
|
52
|
+
requirement: *id002
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
16
56
|
name: currencies
|
57
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
59
|
+
requirements:
|
60
|
+
- - "="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
hash: 15
|
63
|
+
segments:
|
64
|
+
- 0
|
65
|
+
- 4
|
66
|
+
- 0
|
67
|
+
version: 0.4.0
|
68
|
+
requirement: *id003
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
type: :runtime
|
71
|
+
prerelease: false
|
72
|
+
name: yard
|
73
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
75
|
+
requirements:
|
76
|
+
- - "="
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
hash: 15
|
79
|
+
segments:
|
80
|
+
- 0
|
81
|
+
- 6
|
82
|
+
- 4
|
83
|
+
version: 0.6.4
|
84
|
+
requirement: *id004
|
85
|
+
- !ruby/object:Gem::Dependency
|
17
86
|
type: :runtime
|
18
|
-
|
19
|
-
|
87
|
+
prerelease: false
|
88
|
+
name: currencies
|
89
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
90
|
+
none: false
|
20
91
|
requirements:
|
21
92
|
- - ">="
|
22
93
|
- !ruby/object:Gem::Version
|
94
|
+
hash: 23
|
95
|
+
segments:
|
96
|
+
- 0
|
97
|
+
- 2
|
98
|
+
- 0
|
23
99
|
version: 0.2.0
|
24
|
-
|
100
|
+
requirement: *id005
|
25
101
|
- !ruby/object:Gem::Dependency
|
26
|
-
name: rspec
|
27
102
|
type: :development
|
28
|
-
|
29
|
-
|
103
|
+
prerelease: false
|
104
|
+
name: rspec
|
105
|
+
version_requirements: &id006 !ruby/object:Gem::Requirement
|
106
|
+
none: false
|
30
107
|
requirements:
|
31
108
|
- - ">="
|
32
109
|
- !ruby/object:Gem::Version
|
110
|
+
hash: 3
|
111
|
+
segments:
|
112
|
+
- 0
|
33
113
|
version: "0"
|
34
|
-
|
114
|
+
requirement: *id006
|
35
115
|
- !ruby/object:Gem::Dependency
|
36
|
-
name: yard
|
37
116
|
type: :development
|
38
|
-
|
39
|
-
|
117
|
+
prerelease: false
|
118
|
+
name: yard
|
119
|
+
version_requirements: &id007 !ruby/object:Gem::Requirement
|
120
|
+
none: false
|
40
121
|
requirements:
|
41
122
|
- - ">="
|
42
123
|
- !ruby/object:Gem::Version
|
124
|
+
hash: 3
|
125
|
+
segments:
|
126
|
+
- 0
|
43
127
|
version: "0"
|
44
|
-
|
128
|
+
requirement: *id007
|
45
129
|
description: All sorts of useful information about every country packaged as pretty little country objects. It includes data from ISO 3166 (countries and subdivisions), ISO 4217 (currency), and E.164 (phone numbers). As a bonus it even adds a country_select helper to rails projects.
|
46
130
|
email: hexorx@gmail.com
|
47
131
|
executables: []
|
@@ -53,7 +137,9 @@ extra_rdoc_files:
|
|
53
137
|
- README.markdown
|
54
138
|
files:
|
55
139
|
- .document
|
56
|
-
- .
|
140
|
+
- .rvmrc
|
141
|
+
- Gemfile
|
142
|
+
- Gemfile.lock
|
57
143
|
- LICENSE
|
58
144
|
- README.markdown
|
59
145
|
- Rakefile
|
@@ -258,6 +344,7 @@ files:
|
|
258
344
|
- lib/data/subdivisions/ZA.yaml
|
259
345
|
- lib/data/subdivisions/ZM.yaml
|
260
346
|
- lib/data/subdivisions/ZW.yaml
|
347
|
+
- lib/iso3166.rb
|
261
348
|
- spec/country_spec.rb
|
262
349
|
- spec/spec_helper.rb
|
263
350
|
has_rdoc: true
|
@@ -265,26 +352,32 @@ homepage: http://github.com/hexorx/countries
|
|
265
352
|
licenses: []
|
266
353
|
|
267
354
|
post_install_message:
|
268
|
-
rdoc_options:
|
269
|
-
|
355
|
+
rdoc_options: []
|
356
|
+
|
270
357
|
require_paths:
|
271
358
|
- lib
|
272
359
|
required_ruby_version: !ruby/object:Gem::Requirement
|
360
|
+
none: false
|
273
361
|
requirements:
|
274
362
|
- - ">="
|
275
363
|
- !ruby/object:Gem::Version
|
364
|
+
hash: 3
|
365
|
+
segments:
|
366
|
+
- 0
|
276
367
|
version: "0"
|
277
|
-
version:
|
278
368
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
369
|
+
none: false
|
279
370
|
requirements:
|
280
371
|
- - ">="
|
281
372
|
- !ruby/object:Gem::Version
|
373
|
+
hash: 3
|
374
|
+
segments:
|
375
|
+
- 0
|
282
376
|
version: "0"
|
283
|
-
version:
|
284
377
|
requirements: []
|
285
378
|
|
286
379
|
rubyforge_project:
|
287
|
-
rubygems_version: 1.3.
|
380
|
+
rubygems_version: 1.3.7
|
288
381
|
signing_key:
|
289
382
|
specification_version: 3
|
290
383
|
summary: Gives you a country object full of all sorts of useful information.
|