countries 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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.0
1
+ 0.1.1
@@ -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
@@ -22,10 +22,19 @@ class Country
22
22
  @national_prefix = data['e164_national_prefix']
23
23
  end
24
24
 
25
- def self.[](search)
26
- Country.new(Data[search])
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
@@ -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['US']
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 '[]' do
67
- it 'should return new country object when a alpha2 is passed' do
68
- Country['US'].should be_a(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.0
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-23 00:00:00 -07:00
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