itu_codes 0.3.5 → 0.3.6

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/lib/itu_codes.rb CHANGED
@@ -1,880 +1,138 @@
1
1
  # to-do: deal with headache codes:
2
2
  # 1 --> Non-US need to be separated by area code
3
3
  # 7 --> Kazakhstan!
4
- require 'enumerator'
5
4
  require 'carmen'
6
5
 
6
+ require 'itu_codes/constants'
7
+ require 'itu_codes/helpers'
8
+
7
9
  # TODO: add ability to search for common names (i.e. 'USA' or 'United States of America' for 'United States')
8
10
 
9
11
  module ItuCodes
10
- include Carmen
11
-
12
- # TODO: move the base data into a fixture file to speed up loading
13
- CODE_LIST = [
14
- { "0" => "Reserved"},
15
-
16
- { "1" => "United States"},
17
- { "1201" => "United States" },
18
- { "1202" => "United States" },
19
- { "1203" => "United States" },
20
- { "1205" => "United States" },
21
- { "1206" => "United States" },
22
- { "1207" => "United States" },
23
- { "1208" => "United States" },
24
- { "1209" => "United States" },
25
- { "1210" => "United States" },
26
- { "1212" => "United States" },
27
- { "1213" => "United States" },
28
- { "1214" => "United States" },
29
- { "1215" => "United States" },
30
- { "1216" => "United States" },
31
- { "1217" => "United States" },
32
- { "1218" => "United States" },
33
- { "1219" => "United States" },
34
- { "1220" => "United States" },
35
- { "1224" => "United States" },
36
- { "1225" => "United States" },
37
- { "1227" => "United States" },
38
- { "1228" => "United States" },
39
- { "1229" => "United States" },
40
- { "1231" => "United States" },
41
- { "1234" => "United States" },
42
- { "1239" => "United States" },
43
- { "1240" => "United States" },
44
- { "1248" => "United States" },
45
- { "1251" => "United States" },
46
- { "1252" => "United States" },
47
- { "1253" => "United States" },
48
- { "1254" => "United States" },
49
- { "1256" => "United States" },
50
- { "1260" => "United States" },
51
- { "1262" => "United States" },
52
- { "1267" => "United States" },
53
- { "1269" => "United States" },
54
- { "1270" => "United States" },
55
- { "1272" => "United States" },
56
- { "1274" => "United States" },
57
- { "1276" => "United States" },
58
- { "1281" => "United States" },
59
- { "1283" => "United States" },
60
- { "1301" => "United States" },
61
- { "1302" => "United States" },
62
- { "1303" => "United States" },
63
- { "1304" => "United States" },
64
- { "1305" => "United States" },
65
- { "1307" => "United States" },
66
- { "1308" => "United States" },
67
- { "1309" => "United States" },
68
- { "1310" => "United States" },
69
- { "1312" => "United States" },
70
- { "1313" => "United States" },
71
- { "1314" => "United States" },
72
- { "1315" => "United States" },
73
- { "1316" => "United States" },
74
- { "1317" => "United States" },
75
- { "1318" => "United States" },
76
- { "1319" => "United States" },
77
- { "1320" => "United States" },
78
- { "1321" => "United States" },
79
- { "1323" => "United States" },
80
- { "1325" => "United States" },
81
- { "1327" => "United States" },
82
- { "1330" => "United States" },
83
- { "1331" => "United States" },
84
- { "1334" => "United States" },
85
- { "1336" => "United States" },
86
- { "1337" => "United States" },
87
- { "1339" => "United States" },
88
- { "1341" => "United States" },
89
- { "1347" => "United States" },
90
- { "1351" => "United States" },
91
- { "1352" => "United States" },
92
- { "1353" => "United States" },
93
- { "1360" => "United States" },
94
- { "1361" => "United States" },
95
- { "1364" => "United States" },
96
- { "1369" => "United States" },
97
- { "1380" => "United States" },
98
- { "1385" => "United States" },
99
- { "1386" => "United States" },
100
- { "1401" => "United States" },
101
- { "1402" => "United States" },
102
- { "1404" => "United States" },
103
- { "1405" => "United States" },
104
- { "1406" => "United States" },
105
- { "1407" => "United States" },
106
- { "1408" => "United States" },
107
- { "1409" => "United States" },
108
- { "1410" => "United States" },
109
- { "1412" => "United States" },
110
- { "1413" => "United States" },
111
- { "1414" => "United States" },
112
- { "1415" => "United States" },
113
- { "1417" => "United States" },
114
- { "1419" => "United States" },
115
- { "1423" => "United States" },
116
- { "1424" => "United States" },
117
- { "1425" => "United States" },
118
- { "1430" => "United States" },
119
- { "1432" => "United States" },
120
- { "1434" => "United States" },
121
- { "1435" => "United States" },
122
- { "1440" => "United States" },
123
- { "1442" => "United States" },
124
- { "1443" => "United States" },
125
- { "1447" => "United States" },
126
- { "1458" => "United States" },
127
- { "1464" => "United States" },
128
- { "1469" => "United States" },
129
- { "1470" => "United States" },
130
- { "1475" => "United States" },
131
- { "1478" => "United States" },
132
- { "1479" => "United States" },
133
- { "1480" => "United States" },
134
- { "1484" => "United States" },
135
- { "1501" => "United States" },
136
- { "1502" => "United States" },
137
- { "1503" => "United States" },
138
- { "1504" => "United States" },
139
- { "1505" => "United States" },
140
- { "1507" => "United States" },
141
- { "1508" => "United States" },
142
- { "1509" => "United States" },
143
- { "1510" => "United States" },
144
- { "1512" => "United States" },
145
- { "1513" => "United States" },
146
- { "1515" => "United States" },
147
- { "1516" => "United States" },
148
- { "1517" => "United States" },
149
- { "1518" => "United States" },
150
- { "1520" => "United States" },
151
- { "1530" => "United States" },
152
- { "1531" => "United States" },
153
- { "1534" => "United States" },
154
- { "1539" => "United States" },
155
- { "1540" => "United States" },
156
- { "1541" => "United States" },
157
- { "1551" => "United States" },
158
- { "1557" => "United States" },
159
- { "1559" => "United States" },
160
- { "1561" => "United States" },
161
- { "1562" => "United States" },
162
- { "1563" => "United States" },
163
- { "1564" => "United States" },
164
- { "1567" => "United States" },
165
- { "1570" => "United States" },
166
- { "1571" => "United States" },
167
- { "1573" => "United States" },
168
- { "1574" => "United States" },
169
- { "1575" => "United States" },
170
- { "1580" => "United States" },
171
- { "1582" => "United States" },
172
- { "1585" => "United States" },
173
- { "1586" => "United States" },
174
- { "1601" => "United States" },
175
- { "1602" => "United States" },
176
- { "1603" => "United States" },
177
- { "1605" => "United States" },
178
- { "1606" => "United States" },
179
- { "1607" => "United States" },
180
- { "1608" => "United States" },
181
- { "1609" => "United States" },
182
- { "1610" => "United States" },
183
- { "1612" => "United States" },
184
- { "1614" => "United States" },
185
- { "1615" => "United States" },
186
- { "1616" => "United States" },
187
- { "1617" => "United States" },
188
- { "1618" => "United States" },
189
- { "1619" => "United States" },
190
- { "1620" => "United States" },
191
- { "1623" => "United States" },
192
- { "1626" => "United States" },
193
- { "1627" => "United States" },
194
- { "1628" => "United States" },
195
- { "1630" => "United States" },
196
- { "1631" => "United States" },
197
- { "1636" => "United States" },
198
- { "1641" => "United States" },
199
- { "1646" => "United States" },
200
- { "1650" => "United States" },
201
- { "1651" => "United States" },
202
- { "1657" => "United States" },
203
- { "1659" => "United States" },
204
- { "1660" => "United States" },
205
- { "1661" => "United States" },
206
- { "1662" => "United States" },
207
- { "1667" => "United States" },
208
- { "1669" => "United States" },
209
- { "1678" => "United States" },
210
- { "1679" => "United States" },
211
- { "1681" => "United States" },
212
- { "1682" => "United States" },
213
- { "1689" => "United States" },
214
- { "1701" => "United States" },
215
- { "1702" => "United States" },
216
- { "1703" => "United States" },
217
- { "1704" => "United States" },
218
- { "1706" => "United States" },
219
- { "1707" => "United States" },
220
- { "1708" => "United States" },
221
- { "1710" => "United States" },
222
- { "1712" => "United States" },
223
- { "1713" => "United States" },
224
- { "1714" => "United States" },
225
- { "1715" => "United States" },
226
- { "1716" => "United States" },
227
- { "1717" => "United States" },
228
- { "1718" => "United States" },
229
- { "1719" => "United States" },
230
- { "1720" => "United States" },
231
- { "1724" => "United States" },
232
- { "1727" => "United States" },
233
- { "1730" => "United States" },
234
- { "1731" => "United States" },
235
- { "1732" => "United States" },
236
- { "1734" => "United States" },
237
- { "1737" => "United States" },
238
- { "1740" => "United States" },
239
- { "1747" => "United States" },
240
- { "1754" => "United States" },
241
- { "1757" => "United States" },
242
- { "1760" => "United States" },
243
- { "1762" => "United States" },
244
- { "1763" => "United States" },
245
- { "1764" => "United States" },
246
- { "1765" => "United States" },
247
- { "1769" => "United States" },
248
- { "1770" => "United States" },
249
- { "1772" => "United States" },
250
- { "1773" => "United States" },
251
- { "1774" => "United States" },
252
- { "1775" => "United States" },
253
- { "1779" => "United States" },
254
- { "1781" => "United States" },
255
- { "1785" => "United States" },
256
- { "1786" => "United States" },
257
- { "1801" => "United States" },
258
- { "1802" => "United States" },
259
- { "1803" => "United States" },
260
- { "1804" => "United States" },
261
- { "1805" => "United States" },
262
- { "1806" => "United States" },
263
- { "1808" => "United States" },
264
- { "1810" => "United States" },
265
- { "1812" => "United States" },
266
- { "1813" => "United States" },
267
- { "1814" => "United States" },
268
- { "1815" => "United States" },
269
- { "1816" => "United States" },
270
- { "1817" => "United States" },
271
- { "1818" => "United States" },
272
- { "1828" => "United States" },
273
- { "1830" => "United States" },
274
- { "1831" => "United States" },
275
- { "1832" => "United States" },
276
- { "1835" => "United States" },
277
- { "1843" => "United States" },
278
- { "1845" => "United States" },
279
- { "1847" => "United States" },
280
- { "1848" => "United States" },
281
- { "1850" => "United States" },
282
- { "1856" => "United States" },
283
- { "1857" => "United States" },
284
- { "1858" => "United States" },
285
- { "1859" => "United States" },
286
- { "1860" => "United States" },
287
- { "1862" => "United States" },
288
- { "1863" => "United States" },
289
- { "1864" => "United States" },
290
- { "1865" => "United States" },
291
- { "1870" => "United States" },
292
- { "1872" => "United States" },
293
- { "1878" => "United States" },
294
- { "1901" => "United States" },
295
- { "1903" => "United States" },
296
- { "1904" => "United States" },
297
- { "1906" => "United States" },
298
- { "1907" => "United States" },
299
- { "1908" => "United States" },
300
- { "1909" => "United States" },
301
- { "1910" => "United States" },
302
- { "1912" => "United States" },
303
- { "1913" => "United States" },
304
- { "1914" => "United States" },
305
- { "1915" => "United States" },
306
- { "1916" => "United States" },
307
- { "1917" => "United States" },
308
- { "1918" => "United States" },
309
- { "1919" => "United States" },
310
- { "1920" => "United States" },
311
- { "1925" => "United States" },
312
- { "1928" => "United States" },
313
- { "1929" => "United States" },
314
- { "1931" => "United States" },
315
- { "1935" => "United States" },
316
- { "1936" => "United States" },
317
- { "1937" => "United States" },
318
- { "1938" => "United States" },
319
- { "1940" => "United States" },
320
- { "1941" => "United States" },
321
- { "1943" => "United States" },
322
- { "1947" => "United States" },
323
- { "1949" => "United States" },
324
- { "1951" => "United States" },
325
- { "1952" => "United States" },
326
- { "1954" => "United States" },
327
- { "1956" => "United States" },
328
- { "1959" => "United States" },
329
- { "1970" => "United States" },
330
- { "1971" => "United States" },
331
- { "1972" => "United States" },
332
- { "1973" => "United States" },
333
- { "1975" => "United States" },
334
- { "1978" => "United States" },
335
- { "1979" => "United States" },
336
- { "1980" => "United States" },
337
- { "1984" => "United States" },
338
- { "1985" => "United States" },
339
- { "1989" => "United States" },
340
-
341
- # from http://www.cnac.ca/co_codes/co_code_status_map.htm
342
- { "1" => "Canada" },
343
- { "1204" => "Canada" },
344
- { "1226" => "Canada" },
345
- { "1236" => "Canada" },
346
- { "1249" => "Canada" },
347
- { "1250" => "Canada" },
348
- { "1289" => "Canada" },
349
- { "1306" => "Canada" },
350
- { "1343" => "Canada" },
351
- { "1365" => "Canada" },
352
- { "1403" => "Canada" },
353
- { "1416" => "Canada" },
354
- { "1418" => "Canada" },
355
- { "1431" => "Canada" },
356
- { "1437" => "Canada" },
357
- { "1438" => "Canada" },
358
- { "1450" => "Canada" },
359
- { "1506" => "Canada" },
360
- { "1514" => "Canada" },
361
- { "1519" => "Canada" },
362
- { "1579" => "Canada" },
363
- { "1581" => "Canada" },
364
- { "1587" => "Canada" },
365
- { "1604" => "Canada" },
366
- { "1613" => "Canada" },
367
- { "1639" => "Canada" },
368
- { "1647" => "Canada" },
369
- { "1705" => "Canada" },
370
- { "1709" => "Canada" },
371
- { "1778" => "Canada" },
372
- { "1780" => "Canada" },
373
- { "1807" => "Canada" },
374
- { "1819" => "Canada" },
375
- { "1867" => "Canada" },
376
- { "1873" => "Canada" },
377
- { "1902" => "Canada" },
378
- { "1905" => "Canada" },
379
-
380
- { "1" => "American Samoa" },
381
- { "1684" => "American Samoa" },
382
-
383
- { "1" => "Anguilla" },
384
- { "1264" => "Anguilla" },
385
-
386
- { "1" => "Antigua and Barbuda" },
387
- { "1268" => "Antigua and Barbuda" },
388
-
389
- { "1" => "Bahamas" },
390
- { "1242" => "Bahamas" },
391
-
392
- { "1" => "Barbados" },
393
- { "1246" => "Barbados" },
394
-
395
- { "1" => "Bermuda" },
396
- { "1441" => "Bermuda" },
397
-
398
- { "1" => "Virgin Islands, British" },
399
- { "1284" => "Virgin Islands, British" },
400
-
401
- { "1" => "Cayman Islands" },
402
- { "1345" => "Cayman Islands" },
403
-
404
- { "1" => "Dominica" },
405
- { "1767" => "Dominica" },
406
-
407
- { "1" => "Dominican Republic" },
408
- { "1809" => "Dominican Republic" },
409
- { "1829" => "Dominican Republic" },
410
- { "1849" => "Dominican Republic" },
411
-
412
- { "1" => "Grenada" },
413
- { "1473" => "Grenada" },
414
-
415
- { "1" => "Guam" },
416
- { "1671" => "Guam" },
417
-
418
- { "1" => "Jamaica" },
419
- { "1876" => "Jamaica" },
420
-
421
- { "1" => "Montserrat" },
422
- { "1664" => "Montserrat" },
423
-
424
- { "1" => "Northern Mariana Islands" },
425
- { "1670" => "Northern Mariana Islands" },
426
-
427
- { "1" => "Puerto Rico" },
428
- { "1787" => "Puerto Rico" },
429
- { "1939" => "Puerto Rico" },
430
-
431
- { "1" => "Saint Kitts and Nevis" },
432
- { "1869" => "Saint Kitts and Nevis" },
433
-
434
- { "1" => "Saint Lucia" },
435
- { "1758" => "Saint Lucia" },
436
-
437
- { "1" => "Saint Vincent and the Grenadines" },
438
- { "1784" => "Saint Vincent and the Grenadines" },
439
-
440
- { "1" => "Trinidad and Tobago" },
441
- { "1868" => "Trinidad and Tobago" },
442
-
443
- { "1" => "Turks and Caicos Islands" },
444
- { "1649" => "Turks and Caicos Islands" },
445
-
446
- { "1" => "Virgin Islands, U.S." },
447
- { "1340" => "Virgin Islands, U.S." },
448
-
449
- {"20" => "Egypt"},
450
- {"210" => "Spare code"},
451
- {"211" => "Spare code"},
452
- {"212" => "Morocco"},
453
- {"213" => "Algeria"},
454
- {"214" => "Spare code"},
455
- {"215" => "Spare code"},
456
- {"216" => "Tunisia"},
457
- {"217" => "Spare code"},
458
- {"218" => "Libyan Arab Jamahiriya"},
459
- {"219" => "Spare code"},
460
- {"220" => "Gambia"},
461
- {"221" => "Senegal"},
462
- {"222" => "Mauritania"},
463
- {"223" => "Mali"},
464
- {"224" => "Guinea"},
465
- {"225" => "Cote D'ivoire"},
466
- {"226" => "Burkina Faso"},
467
- {"227" => "Niger"},
468
- {"228" => "Togo"},
469
- {"229" => "Benin"},
470
- {"230" => "Mauritius"},
471
- {"231" => "Liberia"},
472
- {"232" => "Sierra Leone"},
473
- {"233" => "Ghana"},
474
- {"234" => "Nigeria"},
475
- {"235" => "Chad"},
476
- {"236" => "Central African Republic"},
477
- {"237" => "Cameroon"},
478
- {"238" => "Cape Verde"},
479
- {"239" => "Sao Tome and Principe"},
480
- {"240" => "Equatorial Guinea"},
481
- {"241" => "Gabon"},
482
- {"242" => "Congo"},
483
- {"243" => "Congo, the Democratic Republic of the"},
484
- {"244" => "Angola"},
485
- {"245" => "Guinea-Bissau"},
486
- {"246" => "Diego Garcia"},
487
- {"247" => "Ascension Island"},
488
- {"248" => "Seychelles"},
489
- {"249" => "Sudan"},
490
- {"250" => "Rwanda"},
491
- {"251" => "Ethiopia"},
492
- {"252" => "Somalia"},
493
- {"253" => "Djibouti"},
494
- {"254" => "Kenya"},
495
- {"255" => "Tanzania, United Republic of"},
496
- {"256" => "Uganda"},
497
- {"257" => "Burundi"},
498
- {"258" => "Mozambique"},
499
- {"259" => "Spare code"},
500
- {"260" => "Zambia"},
501
- {"261" => "Madagascar"},
502
- {"262" => "Reunion"},
503
- {"263" => "Zimbabwe"},
504
- {"264" => "Namibia"},
505
- {"265" => "Malawi"},
506
- {"266" => "Lesotho"},
507
- {"267" => "Botswana"},
508
- {"268" => "Swaziland"},
509
- {"269" => "Comoros"},
510
- {"269" => "Mayotte"},
511
- {"27" => "South Africa"},
512
- {"280" => "Spare code"},
513
- {"281" => "Spare code"},
514
- {"282" => "Spare code"},
515
- {"283" => "Spare code"},
516
- {"284" => "Spare code"},
517
- {"285" => "Spare code"},
518
- {"286" => "Spare code"},
519
- {"287" => "Spare code"},
520
- {"288" => "Spare code"},
521
- {"289" => "Spare code"},
522
- {"290" => "Saint Helena"},
523
- {"291" => "Eritrea"},
524
- {"292" => "Spare code"},
525
- {"293" => "Spare code"},
526
- {"294" => "Spare code"},
527
- {"295" => "Spare code"},
528
- {"296" => "Spare code"},
529
- {"297" => "Aruba"},
530
- {"298" => "Faroe Islands"},
531
- {"299" => "Greenland"},
532
- {"30" => "Greece"},
533
- {"31" => "Netherlands"},
534
- {"32" => "Belgium"},
535
- {"33" => "France"},
536
- {"34" => "Spain"},
537
- {"350" => "Gibraltar"},
538
- {"351" => "Portugal"},
539
- {"352" => "Luxembourg"},
540
- {"353" => "Ireland"},
541
- {"354" => "Iceland"},
542
- {"355" => "Albania"},
543
- {"356" => "Malta"},
544
- {"357" => "Cyprus"},
545
- {"358" => "Finland"},
546
- {"359" => "Bulgaria"},
547
- {"36" => "Hungary"},
548
- {"370" => "Lithuania"},
549
- {"371" => "Latvia"},
550
- {"372" => "Estonia"},
551
- {"373" => "Moldova, Republic of"},
552
- {"374" => "Armenia"},
553
- {"375" => "Belarus"},
554
- {"376" => "Andorra"},
555
- {"377" => "Monaco"},
556
- {"378" => "San Marino"},
557
- {"379" => "Holy See (Vatican City State)"},
558
- {"380" => "Ukraine"},
559
- {"381" => "Serbia and Montenegro"},
560
- {"382" => "Spare code"},
561
- {"383" => "Spare code"},
562
- {"384" => "Spare code"},
563
- {"385" => "Croatia"},
564
- {"386" => "Slovenia"},
565
- {"387" => "Bosnia and Herzegovina"},
566
- {"388" => "Group of countries, shared code"},
567
- {"389" => "Macedonia, the Former Yugoslav Republic of"},
568
- {"39" => "Italy"},
569
- {"40" => "Romania"},
570
- {"41" => "Switzerland"},
571
- {"420" => "Czech Republic"},
572
- {"421" => "Slovakia"},
573
- {"422" => "Spare code"},
574
- {"423" => "Liechtenstein"},
575
- {"424" => "Spare code"},
576
- {"425" => "Spare code"},
577
- {"426" => "Spare code"},
578
- {"427" => "Spare code"},
579
- {"428" => "Spare code"},
580
- {"429" => "Spare code"},
581
- {"43" => "Austria"},
582
- {"44" => "United Kingdom"},
583
- {"45" => "Denmark"},
584
- {"46" => "Sweden"},
585
- {"47" => "Norway"},
586
- {"48" => "Poland"},
587
- {"49" => "Germany"},
588
- {"500" => "Falkland Islands"},
589
- {"501" => "Belize"},
590
- {"502" => "Guatemala"},
591
- {"503" => "El Salvador"},
592
- {"504" => "Honduras"},
593
- {"505" => "Nicaragua"},
594
- {"506" => "Costa Rica"},
595
- {"507" => "Panama"},
596
- {"508" => "Saint Pierre and Miquelon"},
597
- {"509" => "Haiti"},
598
- {"51" => "Peru"},
599
- {"52" => "Mexico"},
600
- {"53" => "Cuba"},
601
- {"54" => "Argentina"},
602
- {"55" => "Brazil"},
603
- {"56" => "Chile"},
604
- {"57" => "Colombia"},
605
- {"58" => "Venezuela"},
606
- {"590" => "Guadeloupe"},
607
- {"591" => "Bolivia"},
608
- {"592" => "Guyana"},
609
- {"593" => "Ecuador"},
610
- {"594" => "French Guiana"},
611
- {"595" => "Paraguay"},
612
- {"596" => "Martinique"},
613
- {"597" => "Suriname"},
614
- {"598" => "Uruguay"},
615
- {"599" => "Netherlands Antilles"},
616
- {"60" => "Malaysia"},
617
- {"61" => "Australia"},
618
- {"62" => "Indonesia"},
619
- {"63" => "Philippines"},
620
- {"64" => "New Zealand"},
621
- {"65" => "Singapore"},
622
- {"66" => "Thailand"},
623
- {"670" => "Timor-Leste"},
624
- {"671" => "Spare code"},
625
- {"672" => "Australian External Territories"},
626
- {"673" => "Brunei Darussalam"},
627
- {"674" => "Nauru"},
628
- {"675" => "Papua New Guinea"},
629
- {"676" => "Tonga"},
630
- {"677" => "Solomon Islands"},
631
- {"678" => "Vanuatu"},
632
- {"679" => "Fiji"},
633
- {"680" => "Palau"},
634
- {"681" => "Wallis and Futuna"},
635
- {"682" => "Cook Islands"},
636
- {"683" => "Niue"},
637
- {"684" => "Spare code"},
638
- {"685" => "Samoa"},
639
- {"686" => "Kiribati"},
640
- {"687" => "New Caledonia"},
641
- {"688" => "Tuvalu"},
642
- {"689" => "French Polynesia"},
643
- {"690" => "Tokelau"},
644
- {"691" => "Micronesia, Federated States of"},
645
- {"692" => "Marshall Islands"},
646
- {"693" => "Spare code"},
647
- {"694" => "Spare code"},
648
- {"695" => "Spare code"},
649
- {"696" => "Spare code"},
650
- {"697" => "Spare code"},
651
- {"698" => "Spare code"},
652
- {"699" => "Spare code"},
653
-
654
- {"7" => "Russian Federation"},
655
- {"7" => "Kazakhstan"},
656
- {"76" => "Kazakhstan"},
657
- {"77" => "Kazakhstan"},
12
+ class << self
658
13
 
659
- {"800" => "International Freephone Service"},
660
- {"801" => "Spare code"},
661
- {"802" => "Spare code"},
662
- {"803" => "Spare code"},
663
- {"804" => "Spare code"},
664
- {"805" => "Spare code"},
665
- {"806" => "Spare code"},
666
- {"807" => "Spare code"},
667
- {"808" => "International Shared Cost Service"},
668
- {"809" => "Spare code"},
669
- {"81" => "Japan"},
670
- {"82" => "Korea, Republic of"},
671
- {"830" => "Spare code"},
672
- {"831" => "Spare code"},
673
- {"832" => "Spare code"},
674
- {"833" => "Spare code"},
675
- {"834" => "Spare code"},
676
- {"835" => "Spare code"},
677
- {"836" => "Spare code"},
678
- {"837" => "Spare code"},
679
- {"838" => "Spare code"},
680
- {"839" => "Spare code"},
681
- {"84" => "Viet Nam"},
682
- {"850" => "Korea, Democratic People's Republic of"},
683
- {"851" => "Spare code"},
684
- {"852" => "Hong Kong"},
685
- {"853" => "Macao"},
686
- {"854" => "Spare code"},
687
- {"855" => "Cambodia"},
688
- {"856" => "Lao People's Democratic Republic"},
689
- {"857" => "Spare code"},
690
- {"858" => "Spare code"},
691
- {"859" => "Spare code"},
692
- {"86" => "China"},
693
- {"870" => "Inmarsat SNAC"},
694
- {"871" => "Inmarsat"},
695
- {"872" => "Inmarsat"},
696
- {"873" => "Inmarsat"},
697
- {"874" => "Inmarsat"},
698
- {"875" => "Reserved - Maritime Mobile Service Applications"},
699
- {"876" => "Reserved - Maritime Mobile Service Applications"},
700
- {"877" => "Reserved - Maritime Mobile Service Applications"},
701
- {"878" => "Universal Personal Telecommunication Service"},
702
- {"879" => "Reserved for national non-commercial purposes"},
703
- {"880" => "Bangladesh"},
704
- {"881" => "International Mobile, shared code"},
705
- {"882" => "International Networks, shared code"},
706
- {"883" => "Spare code"},
707
- {"884" => "Spare code"},
708
- {"885" => "Spare code"},
709
- {"886" => "Reserved"},
710
- {"887" => "Spare code"},
711
- {"888" => "Reserved for future global service"},
712
- {"889" => "Spare code"},
713
- {"890" => "Spare code"},
714
- {"891" => "Spare code"},
715
- {"892" => "Spare code"},
716
- {"893" => "Spare code"},
717
- {"894" => "Spare code"},
718
- {"895" => "Spare code"},
719
- {"896" => "Spare code"},
720
- {"897" => "Spare code"},
721
- {"898" => "Spare code"},
722
- {"899" => "Spare code"},
723
- {"90" => "Turkey"},
724
- {"91" => "India"},
725
- {"92" => "Pakistan"},
726
- {"93" => "Afghanistan"},
727
- {"94" => "Sri Lanka"},
728
- {"95" => "Myanmar"},
729
- {"960" => "Maldives"},
730
- {"961" => "Lebanon"},
731
- {"962" => "Jordan"},
732
- {"963" => "Syrian Arab Republic"},
733
- {"964" => "Iraq"},
734
- {"965" => "Kuwait"},
735
- {"966" => "Saudi Arabia"},
736
- {"967" => "Yemen"},
737
- {"968" => "Oman"},
738
- {"969" => "Reserved - reservation currently under investigation"},
739
- {"970" => "Reserved"},
740
- {"971" => "United Arab Emirates"},
741
- {"972" => "Israel"},
742
- {"973" => "Bahrain"},
743
- {"974" => "Qatar"},
744
- {"975" => "Bhutan"},
745
- {"976" => "Mongolia"},
746
- {"977" => "Nepal"},
747
- {"978" => "Spare code"},
748
- {"979" => "International Premium Rate Service"},
749
- {"98" => "Iran, Islamic Republic of"},
750
- {"990" => "Spare code"},
751
- {"991" => "Trial of a proposed new international telecommunication public correspondence"},
752
- {"992" => "Tajikistan"},
753
- {"993" => "Turkmenistan"},
754
- {"994" => "Azerbaijan"},
755
- {"995" => "Georgia"}
756
- ]
757
-
758
- def self.list
759
- ItuCodes::CODE_LIST
760
- end
14
+ def list
15
+ Constants::ASSIGNED_COUNTRY_CODES
16
+ end
761
17
 
762
- def self.lookup(code)
763
- cleaned = clean(code)
764
- list.find_all{ |hsh| hsh.keys.first == cleaned }.map do |k|
765
- k.values.first
766
- end.uniq
767
- end
18
+ def lookup(code)
19
+ cleaned = clean(code)
20
+ list.find_all{ |hsh| hsh.keys.first == cleaned }.map do |k|
21
+ k.values.first
22
+ end.uniq
23
+ end
768
24
 
769
- def self.find (code_or_name)
770
- if code_or_name.to_s.match /[^0-9]/ # non-numeric string passed
771
- find_by_name(code_or_name)
772
- else
773
- cleaned = self.clean(code_or_name)
774
- find_by_itu_code(cleaned)
25
+ def find (code_or_name)
26
+ if code_or_name.to_s.match /[^0-9]/ # non-numeric string passed
27
+ find_by_name(code_or_name)
28
+ else
29
+ cleaned = self.clean(code_or_name)
30
+ find_by_itu_code(cleaned)
31
+ end
775
32
  end
776
- end
777
33
 
778
- def self.find_by_itu_code(code)
779
- if american?(code) and code.length > 1
780
- returner = 'United States'
781
- else
782
- returner = ItuCodes::CODE_LIST.find_all do |record|
783
- record.has_key? code
784
- end.map { |k| k.values.first }.uniq
34
+ def find_by_itu_code(code)
35
+ if american?(code) and code.length > 1
36
+ returner = 'United States'
37
+ else
38
+ returner = list.find_all do |record|
39
+ record.has_key? code
40
+ end.map { |k| k.values.first }.uniq
41
+ end
42
+ returner.size <= 1 ? returner.shift : returner
785
43
  end
786
- returner.size <= 1 ? returner.shift : returner
787
- end
788
44
 
789
- def self.find_by_name(name)
790
- returner = list.find_all do |record|
791
- record.has_value? name
792
- end.map{ |k| k.keys.first }.uniq
793
- returner.size <= 1 ? returner.shift : returner
794
- end
45
+ def find_by_name(name)
46
+ returner = list.find_all do |record|
47
+ record.has_value? name
48
+ end.map{ |k| k.keys.first }.uniq
49
+ returner.size <= 1 ? returner.shift : returner
50
+ end
795
51
 
796
- # ie. find_by_country_iso_code('US')
797
- def self.iso2itu(iso_code)
798
- [ItuCodes.find_by_name( Carmen::country_name(iso_code) )].flatten.reject do |c|
799
- north_american?(c) and c.length > 1
800
- end.shift rescue nil
801
- end
52
+ # ie. find_by_country_iso_code('US')
53
+ def iso2itu(iso_code)
54
+ [find_by_name( Helpers.country_name_lookup(iso_code) )].flatten.reject do |c|
55
+ north_american?(c) and c.length > 1
56
+ end.shift rescue nil
57
+ end
802
58
 
803
- # this is tricky for North American destinations: '1' can be the US, Canada or another country
804
- def self.itu2iso(itu_code)
805
- ItuCodes.lookup(itu_code).map do |country|
806
- Carmen::country_code( country ) rescue nil
807
- end.compact
808
- end
59
+ # this is tricky for North American destinations: '1' can be the US, Canada or another country
60
+ def itu2iso(itu_code)
61
+ lookup(itu_code).map do |country|
62
+ Helpers.country_code_lookup(country)
63
+ end.compact
64
+ end
809
65
 
810
- # returns true for any valid ITU code
811
- # valid_code?(1) => true
812
- # valid_code?(1818) => false
813
- def self.valid_code?(some_code)
814
- if north_american?(some_code)
815
- some_code.length == 1
816
- else
817
- self.list.any? { |hsh| hsh.has_key?(some_code) }
66
+ # returns true for any valid ITU code
67
+ # valid_code?(1) => true
68
+ # valid_code?(1818) => false
69
+ def valid_code?(some_code)
70
+ if north_american?(some_code)
71
+ some_code.length == 1
72
+ else
73
+ self.list.any? { |hsh| hsh.has_key?(some_code) }
74
+ end
818
75
  end
819
- end
820
76
 
821
- def self.north_america
822
- find_by_itu_code '1'
823
- end
77
+ def north_america
78
+ find_by_itu_code '1'
79
+ end
824
80
 
825
- def self.north_american?(some_code)
826
- some_code.to_s[0,1] == '1'
827
- end
81
+ def north_american?(some_code)
82
+ some_code.to_s[0,1] == '1'
83
+ end
828
84
 
829
- # parse a destination code (probably with area code) to find the ITU code
830
- # ex: parse_code(1818) => 1
831
- def self.parse_code(some_code)
832
- some_code = clean(some_code)
833
- sub_index = (1..some_code.length).find do |len|
834
- valid_code? some_code[0,len]
85
+ # parse a destination code (probably with area code) to find the ITU code
86
+ # ex: parse_code(1818) => 1
87
+ def parse_code(some_code)
88
+ some_code = clean(some_code)
89
+ sub_index = (1..some_code.length).find do |len|
90
+ valid_code? some_code[0,len]
91
+ end
92
+ some_code[0,sub_index] unless sub_index.nil?
835
93
  end
836
- some_code[0,sub_index] unless sub_index.nil?
837
- end
838
94
 
839
- # parse a destination code (probably with area code) to find the number without the ITU code
840
- # ex: parse_number(18184443322) => 8184443322
841
- def self.parse_number(some_code)
842
- some_code = clean(some_code)
843
- sub_index = (1..some_code.length).find do |len|
844
- valid_code? some_code[0,len]
95
+ # parse a destination code (probably with area code) to find the number without the ITU code
96
+ # ex: parse_number(18184443322) => 8184443322
97
+ def parse_number(some_code)
98
+ some_code = clean(some_code)
99
+ sub_index = (1..some_code.length).find do |len|
100
+ valid_code? some_code[0,len]
101
+ end
102
+ some_code[sub_index,some_code.length - sub_index] unless sub_index.nil?
845
103
  end
846
- some_code[sub_index,some_code.length - sub_index] unless sub_index.nil?
847
- end
848
104
 
849
- def self.compatriots?(some, other)
850
- both_valid = ! ( parse_code(some).nil? or parse_code(other).nil? )
851
- both_valid and ( parse_code(some) == parse_code(other) ) rescue nil
852
- end
105
+ def compatriots?(some, other)
106
+ both_valid = ! ( parse_code(some).nil? or parse_code(other).nil? )
107
+ both_valid and ( parse_code(some) == parse_code(other) ) rescue nil
108
+ end
853
109
 
854
- # def self.american?(some_code)
855
- # # for non-US North American codes, parse_code will return a 4 digit code
856
- # # for US, '1' will be returned
857
- # some_code = some_code.to_s
858
- # countries = lookup(some_code[0,4])
859
- # north_american?(some_code) and (countries.include?('United States') or countries.empty?)
860
- # end
110
+ # def american?(some_code)
111
+ # # for non-US North American codes, parse_code will return a 4 digit code
112
+ # # for US, '1' will be returned
113
+ # some_code = some_code.to_s
114
+ # countries = lookup(some_code[0,4])
115
+ # north_american?(some_code) and (countries.include?('United States') or countries.empty?)
116
+ # end
117
+
118
+ def american?(some_code)
119
+ # for non-US North American codes, parse_code will return a 4 digit code
120
+ # for US, '1' will be returned
121
+ some_code = some_code.to_s
122
+ countries = lookup(some_code[0,4])
123
+ north_american?(some_code) and (countries.include?('United States'))
124
+ end
861
125
 
862
- def self.american?(some_code)
863
- # for non-US North American codes, parse_code will return a 4 digit code
864
- # for US, '1' will be returned
865
- some_code = some_code.to_s
866
- countries = lookup(some_code[0,4])
867
- north_american?(some_code) and (countries.include?('United States'))
868
- end
126
+ def canadian?(some_code)
127
+ some_code = some_code.to_s
128
+ countries = lookup(some_code[0,4])
129
+ north_american?(some_code) and (countries.include?('Canada'))
130
+ end
869
131
 
870
- def self.canadian?(some_code)
871
- some_code = some_code.to_s
872
- countries = lookup(some_code[0,4])
873
- north_american?(some_code) and (countries.include?('Canada'))
874
- end
132
+ # converts input to string, then strips any non-numeric characters
133
+ def clean(input)
134
+ input.to_s.gsub(/[^0-9]/, '')
135
+ end
875
136
 
876
- # converts input to string, then strips any non-numeric characters
877
- def self.clean(input)
878
- input.to_s.gsub(/[^0-9]/, '')
879
137
  end
880
138
  end