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.
@@ -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