itu_codes 0.2

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/History.txt ADDED
@@ -0,0 +1,7 @@
1
+ === 0.2 / 2009-04-14
2
+
3
+ * Cleaned up code and added to GitHub. Created a gem.
4
+
5
+ === 0.1 / 2009-03-20
6
+
7
+ * Started work.
data/Manifest.txt ADDED
@@ -0,0 +1,6 @@
1
+ History.txt
2
+ Manifest.txt
3
+ README.txt
4
+ Rakefile
5
+ lib/itu_codes.rb
6
+ test/itu_codes_test.rb
data/README.txt ADDED
@@ -0,0 +1,12 @@
1
+ = hellohoe
2
+
3
+ * http://rubyforge.org/projects/itu-codes
4
+ * http://github.com/bowsersenior/itu-codes/tree/master
5
+
6
+ == DESCRIPTION:
7
+
8
+ Easy to use tools to look up and parse international calling codes.
9
+
10
+ == LICENSE:
11
+
12
+ MIT License.
data/Rakefile ADDED
@@ -0,0 +1,9 @@
1
+ require 'hoe'
2
+ require './lib/itu_codes.rb'
3
+
4
+ Hoe.new('itu_codes', ItuCodes::VERSION) do |p|
5
+
6
+ p.rubyforge_name = 'bowser_senior'
7
+
8
+ p.developer( 'Mani Tadayon', 'mta5@me.com' )
9
+ end
data/lib/itu_codes.rb ADDED
@@ -0,0 +1,473 @@
1
+ # to-do: deal with headache codes:
2
+ # 1 --> Non-US need to be separated by area code
3
+ # 7 --> Kazakhstan!
4
+ require 'enumerator'
5
+
6
+ class ItuCodes < Object
7
+ VERSION = '0.2'
8
+
9
+ @@CODE_LIST = {
10
+ "0" => "Reserved",
11
+ "1" => {
12
+ "1" => "United States of America",
13
+ "1684" => "American Samoa",
14
+ "1264" => "Anguilla",
15
+ "1268" => "Antigua and Barbuda",
16
+ "1242" => "Bahamas (Commonwealth of the)",
17
+ "1246" => "Barbados",
18
+ "1441" => "Bermuda",
19
+ "1284" => "British Virgin Islands",
20
+ "1204" => "Canada", # from http://www.cnac.ca/co_codes/co_code_status_map.htm
21
+ "1226" => "Canada",
22
+ "1250" => "Canada",
23
+ "1289" => "Canada",
24
+ "1306" => "Canada",
25
+ "1343" => "Canada",
26
+ "1403" => "Canada",
27
+ "1416" => "Canada",
28
+ "1418" => "Canada",
29
+ "1438" => "Canada",
30
+ "1450" => "Canada",
31
+ "1506" => "Canada",
32
+ "1514" => "Canada",
33
+ "1519" => "Canada",
34
+ "1581" => "Canada",
35
+ "1587" => "Canada",
36
+ "1604" => "Canada",
37
+ "1613" => "Canada",
38
+ "1647" => "Canada",
39
+ "1705" => "Canada",
40
+ "1709" => "Canada",
41
+ "1778" => "Canada",
42
+ "1780" => "Canada",
43
+ "1807" => "Canada",
44
+ "1819" => "Canada",
45
+ "1867" => "Canada",
46
+ "1902" => "Canada",
47
+ "1905" => "Canada",
48
+ "1345" => "Cayman Islands",
49
+ "1767" => "Dominica (Commonwealth of)",
50
+ "1809" => "Dominican Republic",
51
+ "1829" => "Dominican Republic",
52
+ "1473" => "Grenada",
53
+ "1671" => "Guam",
54
+ "1876" => "Jamaica",
55
+ "1664" => "Montserrat",
56
+ "1670" => "Northern Mariana Islands (Commonwealth of the)",
57
+ "1869" => "Saint Kitts and Nevis",
58
+ "1758" => "Saint Lucia",
59
+ "1784" => "Saint Vincent and the Grenadines",
60
+ "1868" => "Trinidad and Tobago",
61
+ "1649" => "Turks and Caicos Islands",
62
+ "1340" => "United States Virgin Islands"
63
+ },
64
+ "20" => "Egypt (Arab Republic of)",
65
+ "210" => "Spare code",
66
+ "211" => "Spare code",
67
+ "212" => "Morocco (Kingdom of)",
68
+ "213" => "Algeria (People's Democratic Republic of)",
69
+ "214" => "Spare code",
70
+ "215" => "Spare code",
71
+ "216" => "Tunisia",
72
+ "217" => "Spare code",
73
+ "218" => "Libya (Socialist People's Libyan Arab Jamahiriya)",
74
+ "219" => "Spare code",
75
+ "220" => "Gambia (Republic of the)",
76
+ "221" => "Senegal (Republic of)",
77
+ "222" => "Mauritania (Islamic Republic of)",
78
+ "223" => "Mali (Republic of)",
79
+ "224" => "Guinea (Republic of)",
80
+ "225" => "Côte d'Ivoire (Republic of)",
81
+ "226" => "Burkina Faso",
82
+ "227" => "Niger (Republic of the)",
83
+ "228" => "Togolese Republic",
84
+ "229" => "Benin (Republic of)",
85
+ "230" => "Mauritius (Republic of)",
86
+ "231" => "Liberia (Republic of)",
87
+ "232" => "Sierra Leone",
88
+ "233" => "Ghana",
89
+ "234" => "Nigeria (Federal Republic of)",
90
+ "235" => "Chad (Republic of)",
91
+ "236" => "Central African Republic",
92
+ "237" => "Cameroon (Republic of)",
93
+ "238" => "Cape Verde (Republic of)",
94
+ "239" => "Sao Tome and Principe (Democratic Republic of)",
95
+ "240" => "Equatorial Guinea (Republic of)",
96
+ "241" => "Gabonese Republic",
97
+ "242" => "Congo (Republic of the)",
98
+ "243" => "Democratic Republic of the Congo",
99
+ "244" => "Angola (Republic of)",
100
+ "245" => "Guinea-Bissau (Republic of)",
101
+ "246" => "Diego Garcia",
102
+ "247" => "Ascension",
103
+ "248" => "Seychelles (Republic of)",
104
+ "249" => "Sudan (Republic of the)",
105
+ "250" => "Rwanda (Republic of)",
106
+ "251" => "Ethiopia (Federal Democratic Republic of)",
107
+ "252" => "Somali Democratic Republic",
108
+ "253" => "Djibouti (Republic of)",
109
+ "254" => "Kenya (Republic of)",
110
+ "255" => "Tanzania (United Republic of)",
111
+ "256" => "Uganda (Republic of)",
112
+ "257" => "Burundi (Republic of)",
113
+ "258" => "Mozambique (Republic of)",
114
+ "259" => "Spare code",
115
+ "260" => "Zambia (Republic of)",
116
+ "261" => "Madagascar (Republic of)",
117
+ "262" => "Reunion (French Department of)",
118
+ "263" => "Zimbabwe (Republic of)",
119
+ "264" => "Namibia (Republic of)",
120
+ "265" => "Malawi",
121
+ "266" => "Lesotho (Kingdom of)",
122
+ "267" => "Botswana (Republic of)",
123
+ "268" => "Swaziland (Kingdom of)",
124
+ "269" => "Comoros (Union of the)",
125
+ "269" => "Mayotte",
126
+ "27" => "South Africa (Republic of)",
127
+ "280" => "Spare code",
128
+ "281" => "Spare code",
129
+ "282" => "Spare code",
130
+ "283" => "Spare code",
131
+ "284" => "Spare code",
132
+ "285" => "Spare code",
133
+ "286" => "Spare code",
134
+ "287" => "Spare code",
135
+ "288" => "Spare code",
136
+ "289" => "Spare code",
137
+ "290" => "Saint Helena",
138
+ "291" => "Eritrea",
139
+ "292" => "Spare code",
140
+ "293" => "Spare code",
141
+ "294" => "Spare code",
142
+ "295" => "Spare code",
143
+ "296" => "Spare code",
144
+ "297" => "Aruba",
145
+ "298" => "Faroe Islands",
146
+ "299" => "Greenland (Denmark)",
147
+ "30" => "Greece",
148
+ "31" => "Netherlands (Kingdom of the)",
149
+ "32" => "Belgium",
150
+ "33" => "France",
151
+ "34" => "Spain",
152
+ "350" => "Gibraltar",
153
+ "351" => "Portugal",
154
+ "352" => "Luxembourg",
155
+ "353" => "Ireland",
156
+ "354" => "Iceland",
157
+ "355" => "Albania (Republic of)",
158
+ "356" => "Malta",
159
+ "357" => "Cyprus (Republic of)",
160
+ "358" => "Finland",
161
+ "359" => "Bulgaria (Republic of)",
162
+ "36" => "Hungary (Republic of)",
163
+ "370" => "Lithuania (Republic of)",
164
+ "371" => "Latvia (Republic of)",
165
+ "372" => "Estonia (Republic of)",
166
+ "373" => "Moldova (Republic of)",
167
+ "374" => "Armenia (Republic of)",
168
+ "375" => "Belarus (Republic of)",
169
+ "376" => "Andorra (Principality of)",
170
+ "377" => "Monaco (Principality of)",
171
+ "378" => "San Marino (Republic of)",
172
+ "379" => "Vatican City State",
173
+ "380" => "Ukraine",
174
+ "381" => "Serbia and Montenegro",
175
+ "382" => "Spare code",
176
+ "383" => "Spare code",
177
+ "384" => "Spare code",
178
+ "385" => "Croatia (Republic of)",
179
+ "386" => "Slovenia (Republic of)",
180
+ "387" => "Bosnia and Herzegovina",
181
+ "388" => "Group of countries, shared code",
182
+ "389" => "The Former Yugoslav Republic of Macedonia",
183
+ "39" => "Italy",
184
+ "39" => "Vatican City State",
185
+ "40" => "Romania",
186
+ "41" => "Switzerland (Confederation of)",
187
+ "420" => "Czech Republic",
188
+ "421" => "Slovak Republic",
189
+ "422" => "Spare code",
190
+ "423" => "Liechtenstein (Principality of)",
191
+ "424" => "Spare code",
192
+ "425" => "Spare code",
193
+ "426" => "Spare code",
194
+ "427" => "Spare code",
195
+ "428" => "Spare code",
196
+ "429" => "Spare code",
197
+ "43" => "Austria",
198
+ "44" => "United Kingdom of Great Britain and Northern Ireland",
199
+ "45" => "Denmark",
200
+ "46" => "Sweden",
201
+ "47" => "Norway",
202
+ "48" => "Poland (Republic of)",
203
+ "49" => "Germany (Federal Republic of)",
204
+ "500" => "Falkland Islands (Malvinas)",
205
+ "501" => "Belize",
206
+ "502" => "Guatemala (Republic of)",
207
+ "503" => "El Salvador (Republic of)",
208
+ "504" => "Honduras (Republic of)",
209
+ "505" => "Nicaragua",
210
+ "506" => "Costa Rica",
211
+ "507" => "Panama (Republic of)",
212
+ "508" => "Saint Pierre and Miquelon (Collectivité territoriale de la République française)",
213
+ "509" => "Haiti (Republic of)",
214
+ "51" => "Peru",
215
+ "52" => "Mexico",
216
+ "53" => "Cuba",
217
+ "54" => "Argentine Republic",
218
+ "55" => "Brazil (Federative Republic of)",
219
+ "56" => "Chile",
220
+ "57" => "Colombia (Republic of)",
221
+ "58" => "Venezuela (Bolivarian Republic of)",
222
+ "590" => "Guadeloupe (French Department of)",
223
+ "591" => "Bolivia (Republic of)",
224
+ "592" => "Guyana",
225
+ "593" => "Ecuador",
226
+ "594" => "French Guiana (French Department of)",
227
+ "595" => "Paraguay (Republic of)",
228
+ "596" => "Martinique (French Department of)",
229
+ "597" => "Suriname (Republic of)",
230
+ "598" => "Uruguay (Eastern Republic of)",
231
+ "599" => "Netherlands Antilles",
232
+ "60" => "Malaysia",
233
+ "61" => "Australia",
234
+ "62" => "Indonesia (Republic of)",
235
+ "63" => "Philippines (Republic of the)",
236
+ "64" => "New Zealand",
237
+ "65" => "Singapore (Republic of)",
238
+ "66" => "Thailand",
239
+ "670" => "Democratic Republic of Timor-Leste",
240
+ "671" => "Spare code",
241
+ "672" => "Australian External Territories",
242
+ "673" => "Brunei Darussalam",
243
+ "674" => "Nauru (Republic of)",
244
+ "675" => "Papua New Guinea",
245
+ "676" => "Tonga (Kingdom of)",
246
+ "677" => "Solomon Islands",
247
+ "678" => "Vanuatu (Republic of)",
248
+ "679" => "Fiji (Republic of)",
249
+ "680" => "Palau (Republic of)",
250
+ "681" => "Wallis and Futuna (Territoire français d'outre-mer)",
251
+ "682" => "Cook Islands",
252
+ "683" => "Niue",
253
+ "684" => "Spare code",
254
+ "685" => "Samoa (Independent State of)",
255
+ "686" => "Kiribati (Republic of)",
256
+ "687" => "New Caledonia (Territoire français d'outre-mer)",
257
+ "688" => "Tuvalu",
258
+ "689" => "French Polynesia (Territoire français d'outre-mer)",
259
+ "690" => "Tokelau",
260
+ "691" => "Micronesia (Federated States of)",
261
+ "692" => "Marshall Islands (Republic of the)",
262
+ "693" => "Spare code",
263
+ "694" => "Spare code",
264
+ "695" => "Spare code",
265
+ "696" => "Spare code",
266
+ "697" => "Spare code",
267
+ "698" => "Spare code",
268
+ "699" => "Spare code",
269
+ "7" => [
270
+ "Kazakhstan (Republic of)",
271
+ "Russian Federation"
272
+ ],
273
+ "800" => "International Freephone Service",
274
+ "801" => "Spare code",
275
+ "802" => "Spare code",
276
+ "803" => "Spare code",
277
+ "804" => "Spare code",
278
+ "805" => "Spare code",
279
+ "806" => "Spare code",
280
+ "807" => "Spare code",
281
+ "808" => "International Shared Cost Service (ISCS)",
282
+ "809" => "Spare code",
283
+ "81" => "Japan",
284
+ "82" => "Korea (Republic of)",
285
+ "830" => "Spare code",
286
+ "831" => "Spare code",
287
+ "832" => "Spare code",
288
+ "833" => "Spare code",
289
+ "834" => "Spare code",
290
+ "835" => "Spare code",
291
+ "836" => "Spare code",
292
+ "837" => "Spare code",
293
+ "838" => "Spare code",
294
+ "839" => "Spare code",
295
+ "84" => "Viet Nam (Socialist Republic of)",
296
+ "850" => "Democratic People's Republic of Korea",
297
+ "851" => "Spare code",
298
+ "852" => "Hong Kong, China",
299
+ "853" => "Macao, China",
300
+ "854" => "Spare code",
301
+ "855" => "Cambodia (Kingdom of)",
302
+ "856" => "Lao People's Democratic Republic",
303
+ "857" => "Spare code",
304
+ "858" => "Spare code",
305
+ "859" => "Spare code",
306
+ "86" => "China (People's Republic of)",
307
+ "870" => "Inmarsat SNAC",
308
+ "871" => "Inmarsat (Atlantic Ocean-East)",
309
+ "872" => "Inmarsat (Pacific Ocean)",
310
+ "873" => "Inmarsat (Indian Ocean)",
311
+ "874" => "Inmarsat (Atlantic Ocean-West)",
312
+ "875" => "Reserved - Maritime Mobile Service Applications",
313
+ "876" => "Reserved - Maritime Mobile Service Applications",
314
+ "877" => "Reserved - Maritime Mobile Service Applications",
315
+ "878" => "Universal Personal Telecommunication Service (UPT)",
316
+ "879" => "Reserved for national non-commercial purposes",
317
+ "880" => "Bangladesh (People's Republic of)",
318
+ "881" => "International Mobile, shared code",
319
+ "882" => "International Networks, shared code",
320
+ "883" => "Spare code",
321
+ "884" => "Spare code",
322
+ "885" => "Spare code",
323
+ "886" => "Reserved",
324
+ "887" => "Spare code",
325
+ "888" => "Reserved for future global service",
326
+ "889" => "Spare code",
327
+ "890" => "Spare code",
328
+ "891" => "Spare code",
329
+ "892" => "Spare code",
330
+ "893" => "Spare code",
331
+ "894" => "Spare code",
332
+ "895" => "Spare code",
333
+ "896" => "Spare code",
334
+ "897" => "Spare code",
335
+ "898" => "Spare code",
336
+ "899" => "Spare code",
337
+ "90" => "Turkey",
338
+ "91" => "India (Republic of)",
339
+ "92" => "Pakistan (Islamic Republic of)",
340
+ "93" => "Afghanistan",
341
+ "94" => "Sri Lanka (Democratic Socialist Republic of)",
342
+ "95" => "Myanmar (Union of)",
343
+ "960" => "Maldives (Republic of)",
344
+ "961" => "Lebanon",
345
+ "962" => "Jordan (Hashemite Kingdom of)",
346
+ "963" => "Syrian Arab Republic",
347
+ "964" => "Iraq (Republic of)",
348
+ "965" => "Kuwait (State of)",
349
+ "966" => "Saudi Arabia (Kingdom of)",
350
+ "967" => "Yemen (Republic of)",
351
+ "968" => "Oman (Sultanate of)",
352
+ "969" => "Reserved - reservation currently under investigation",
353
+ "970" => "Reserved",
354
+ "971" => "United Arab Emirates",
355
+ "972" => "Israel (State of)",
356
+ "973" => "Bahrain (Kingdom of)",
357
+ "974" => "Qatar (State of)",
358
+ "975" => "Bhutan (Kingdom of)",
359
+ "976" => "Mongolia",
360
+ "977" => "Nepal",
361
+ "978" => "Spare code",
362
+ "979" => "International Premium Rate Service (IPRS)",
363
+ "98" => "Iran (Islamic Republic of)",
364
+ "990" => "Spare code",
365
+ "991" => "Trial of a proposed new international telecommunication public correspondence",
366
+ "992" => "Tajikistan (Republic of)",
367
+ "993" => "Turkmenistan",
368
+ "994" => "Azerbaijani Republic",
369
+ "995" => "Georgia"
370
+ }
371
+
372
+ def self.list
373
+ @@CODE_LIST
374
+ end
375
+
376
+ # returns an array of hashes:
377
+ # ItuCodes.find(995)
378
+ # => [{"995"=>"Georgia"}]
379
+ # ItuCodes.find("france")
380
+ # => [{"33"=>"France"}]
381
+ # ItuCodes.find("stan")
382
+ # => [{"992" => "Tajikistan (Republic of)"},
383
+ # => {"993" => "Turkmenistan"},
384
+ # => {"7" => ["Kazakhstan (Republic of)", "Russian Federation"]},
385
+ # => {"92" => "Pakistan (Islamic Republic of)"},
386
+ # => {"93" => "Afghanistan"}
387
+ # => ]
388
+ def self.find (code_or_name)
389
+ if code_or_name.to_s.match /[^0-9]/ # non-numeric string passed
390
+ find_by_name(code_or_name)
391
+ else
392
+ find_by_code(code_or_name)
393
+ end
394
+ end
395
+
396
+ def self.find_by_code(code)
397
+ @@CODE_LIST.find_all { |k,v| k == code.to_s }.map do |pair|
398
+ Hash[*pair]
399
+ end
400
+ end
401
+
402
+ def self.find_by_name(name)
403
+ @@CODE_LIST.find_all { |k,v| v.to_s.downcase.include? name.downcase }.map do |pair|
404
+ Hash[*pair]
405
+ end
406
+ end
407
+
408
+ def self.valid_code?(some_code)
409
+ some_code = some_code.to_s unless some_code.respond_to? :length
410
+ if some_code[0,1] == "1" and some_code.length >= 4
411
+ @@CODE_LIST['1'].key? some_code
412
+ else
413
+ @@CODE_LIST.key? some_code
414
+ end
415
+ end
416
+
417
+ # parse a destination code (probably with area code) to find the ITU code
418
+ # ex: parse_code(1818) => 1
419
+ def self.parse_code(some_code)
420
+ some_code = some_code.to_s unless some_code.respond_to? :length
421
+
422
+ # North American codes are a headache:
423
+ # http://en.wikipedia.org/wiki/List_of_country_calling_codes
424
+ if some_code[0,1] == "1" and some_code.length >= 4
425
+ if valid_code? some_code[0,4] # NOT the US or Canada --> 4 digit country code
426
+ sub_index = 4
427
+ else # US or CANADA --> 1 digit country code
428
+ sub_index = 1
429
+ end
430
+ else
431
+ sub_index = (1..some_code.length).find do |len|
432
+ valid_code? some_code[0,len]
433
+ end
434
+ end
435
+ some_code[0,sub_index] unless sub_index.nil?
436
+ end
437
+
438
+ def self.parse_area_code(some_code)
439
+ some_code = some_code.to_s unless some_code.respond_to? :length
440
+ if parse_code(some_code) and ! valid_code? some_code
441
+ len = parse_code(some_code).length
442
+ some_code[len..-1]
443
+ else
444
+ nil
445
+ end
446
+ end
447
+
448
+ def self.compatriots?(some, other)
449
+ returner = false
450
+
451
+ some_country_code = parse_code some
452
+ other_country_code = parse_code other
453
+
454
+ if valid_code? some_country_code and valid_code? other_country_code
455
+ returner = some_country_code == other_country_code
456
+ else
457
+ returner = nil
458
+ end
459
+
460
+ returner
461
+ end
462
+
463
+ def self.american?(some_code)
464
+ parse_code(some_code) == "1"
465
+ end
466
+
467
+ end
468
+ # sample usage:
469
+ # i = ItuCodes.new
470
+ # i.valid_code? 8392813 # => false
471
+ # i.valid_code? 7 # => true
472
+ # i.parse_code 1818 # => 1
473
+ # i.parse_code 4 # => nil
@@ -0,0 +1,61 @@
1
+ require 'itu_codes.rb'
2
+ require 'test/unit'
3
+
4
+ class ItuCodesTest < Test::Unit::TestCase
5
+ def test_valid_code?
6
+ american = "1"
7
+ newyorker = "1212"
8
+ russian = "7"
9
+ alien = "alksjlkknm"
10
+
11
+ assert ItuCodes.valid_code?(american)
12
+ assert ItuCodes.valid_code?(russian)
13
+
14
+ assert ! ItuCodes.valid_code?(newyorker) # 1212 is not a country code!
15
+ assert ! ItuCodes.valid_code?(alien)
16
+ end
17
+
18
+ def test_parse_code
19
+ american = "1"
20
+ newyorker = "1212"
21
+ russian = "7"
22
+ alien = "alksjlkknm"
23
+
24
+ assert_equal american, ItuCodes.parse_code(american)
25
+ assert_equal american, ItuCodes.parse_code(newyorker)
26
+
27
+ assert_not_equal russian, ItuCodes.parse_code(newyorker)
28
+ assert_not_equal russian, ItuCodes.parse_code(alien)
29
+
30
+ assert_not_equal alien, ItuCodes.parse_code(alien)
31
+
32
+ assert_nil ItuCodes.parse_code(alien)
33
+ end
34
+
35
+
36
+ def test_compatriots?
37
+ american = "1"
38
+ newyorker = "1212"
39
+ angeleno = "1818"
40
+ russian = "7"
41
+ alien = "alksjlkknm"
42
+
43
+ assert ItuCodes.compatriots?(newyorker, angeleno)
44
+ assert ItuCodes.compatriots?(newyorker, american)
45
+
46
+ assert ! ItuCodes.compatriots?(newyorker, russian)
47
+ assert ! ItuCodes.compatriots?(american, russian )
48
+
49
+ assert nil == ItuCodes.compatriots?(american, alien)
50
+ assert nil == ItuCodes.compatriots?(alien, alien)
51
+ end
52
+
53
+ def test_find
54
+ assert_equal( [{"995" => "Georgia"}], ItuCodes.find("Georgia") )
55
+ assert_equal( [{"995" => "Georgia"}], ItuCodes.find(995) )
56
+ assert_equal( [{"995" => "Georgia"}], ItuCodes.find("995") )
57
+ assert_equal( [], ItuCodes.find("12345678") )
58
+ assert_equal( [], ItuCodes.find("someverylongandnonterritorialstring") )
59
+ end
60
+
61
+ end
metadata ADDED
@@ -0,0 +1,71 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: itu_codes
3
+ version: !ruby/object:Gem::Version
4
+ version: "0.2"
5
+ platform: ruby
6
+ authors:
7
+ - Mani Tadayon
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-04-14 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: hoe
17
+ type: :development
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 1.12.1
24
+ version:
25
+ description: Easy to use tools to look up and parse international calling codes.
26
+ email:
27
+ - mta5@me.com
28
+ executables: []
29
+
30
+ extensions: []
31
+
32
+ extra_rdoc_files:
33
+ - History.txt
34
+ - Manifest.txt
35
+ - README.txt
36
+ files:
37
+ - History.txt
38
+ - Manifest.txt
39
+ - README.txt
40
+ - Rakefile
41
+ - lib/itu_codes.rb
42
+ - test/itu_codes_test.rb
43
+ has_rdoc: true
44
+ homepage: http://rubyforge.org/projects/itu-codes
45
+ post_install_message:
46
+ rdoc_options:
47
+ - --main
48
+ - README.txt
49
+ require_paths:
50
+ - lib
51
+ required_ruby_version: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: "0"
56
+ version:
57
+ required_rubygems_version: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: "0"
62
+ version:
63
+ requirements: []
64
+
65
+ rubyforge_project: bowser_senior
66
+ rubygems_version: 1.3.1
67
+ signing_key:
68
+ specification_version: 2
69
+ summary: Easy to use tools to look up and parse international calling codes.
70
+ test_files: []
71
+