telephone_number 1.4.5 → 1.4.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (157) hide show
  1. checksums.yaml +5 -5
  2. data/.travis.yml +0 -1
  3. data/CHANGELOG.md +5 -0
  4. data/README.md +4 -0
  5. data/data/geocoding/de/352.dat +0 -0
  6. data/data/geocoding/de/352.txt +0 -1
  7. data/data/geocoding/de/43.dat +0 -0
  8. data/data/geocoding/de/43.txt +2 -0
  9. data/data/geocoding/en/1.dat +0 -0
  10. data/data/geocoding/en/1.txt +44 -7
  11. data/data/geocoding/en/212.dat +0 -0
  12. data/data/geocoding/en/212.txt +4 -4
  13. data/data/geocoding/en/220.dat +0 -0
  14. data/data/geocoding/en/220.txt +1 -0
  15. data/data/geocoding/en/221.dat +0 -0
  16. data/data/geocoding/en/221.txt +7 -1
  17. data/data/geocoding/en/224.dat +0 -0
  18. data/data/geocoding/en/224.txt +1 -1
  19. data/data/geocoding/en/225.dat +0 -0
  20. data/data/geocoding/en/225.txt +36 -4
  21. data/data/geocoding/en/233.dat +0 -0
  22. data/data/geocoding/en/233.txt +1 -0
  23. data/data/geocoding/en/234.dat +0 -0
  24. data/data/geocoding/en/234.txt +16 -1
  25. data/data/geocoding/en/236.dat +0 -0
  26. data/data/geocoding/en/236.txt +15 -0
  27. data/data/geocoding/en/252.dat +0 -0
  28. data/data/geocoding/en/252.txt +0 -1
  29. data/data/geocoding/en/264.dat +0 -0
  30. data/data/geocoding/en/264.txt +2 -0
  31. data/data/geocoding/en/267.dat +0 -0
  32. data/data/geocoding/en/267.txt +1 -0
  33. data/data/geocoding/en/290.dat +0 -0
  34. data/data/geocoding/en/290.txt +6 -1
  35. data/data/geocoding/en/33.dat +0 -0
  36. data/data/geocoding/en/33.txt +10598 -2177
  37. data/data/geocoding/en/352.dat +0 -0
  38. data/data/geocoding/en/352.txt +0 -1
  39. data/data/geocoding/en/370.dat +0 -0
  40. data/data/geocoding/en/370.txt +9 -2
  41. data/data/geocoding/en/374.dat +0 -0
  42. data/data/geocoding/en/374.txt +0 -5
  43. data/data/geocoding/en/380.dat +0 -0
  44. data/data/geocoding/en/380.txt +1 -1
  45. data/data/geocoding/en/389.dat +0 -0
  46. data/data/geocoding/en/389.txt +28 -2
  47. data/data/geocoding/en/421.dat +0 -0
  48. data/data/geocoding/en/421.txt +15 -14
  49. data/data/geocoding/en/43.dat +0 -0
  50. data/data/geocoding/en/43.txt +2 -0
  51. data/data/geocoding/en/44.dat +0 -0
  52. data/data/geocoding/en/44.txt +15 -2
  53. data/data/geocoding/en/504.dat +0 -0
  54. data/data/geocoding/en/504.txt +76 -1
  55. data/data/geocoding/en/54.dat +0 -0
  56. data/data/geocoding/en/54.txt +19 -6
  57. data/data/geocoding/en/56.dat +0 -0
  58. data/data/geocoding/en/56.txt +37 -1
  59. data/data/geocoding/en/58.dat +0 -0
  60. data/data/geocoding/en/58.txt +21 -12
  61. data/data/geocoding/en/593.dat +0 -0
  62. data/data/geocoding/en/593.txt +21 -0
  63. data/data/geocoding/en/595.dat +0 -0
  64. data/data/geocoding/en/595.txt +73 -0
  65. data/data/geocoding/en/598.dat +0 -0
  66. data/data/geocoding/en/598.txt +41 -0
  67. data/data/geocoding/en/599.dat +0 -0
  68. data/data/geocoding/en/599.txt +8 -2
  69. data/data/geocoding/en/60.dat +0 -0
  70. data/data/geocoding/en/60.txt +9 -8
  71. data/data/geocoding/en/61.dat +0 -0
  72. data/data/geocoding/en/61.txt +20671 -1999
  73. data/data/geocoding/en/63.dat +0 -0
  74. data/data/geocoding/en/63.txt +61 -0
  75. data/data/geocoding/en/64.dat +0 -0
  76. data/data/geocoding/en/64.txt +2862 -108
  77. data/data/geocoding/en/66.dat +0 -0
  78. data/data/geocoding/en/66.txt +4 -0
  79. data/data/geocoding/en/670.dat +0 -0
  80. data/data/geocoding/en/670.txt +31 -0
  81. data/data/geocoding/en/672.dat +0 -0
  82. data/data/geocoding/en/672.txt +18 -0
  83. data/data/geocoding/en/678.dat +0 -0
  84. data/data/geocoding/en/678.txt +27 -0
  85. data/data/geocoding/en/680.dat +0 -0
  86. data/data/geocoding/en/680.txt +1 -1
  87. data/data/geocoding/en/685.dat +0 -0
  88. data/data/geocoding/en/685.txt +27 -0
  89. data/data/geocoding/en/686.dat +0 -0
  90. data/data/geocoding/en/686.txt +0 -1
  91. data/data/geocoding/en/689.dat +0 -0
  92. data/data/geocoding/en/689.txt +24 -0
  93. data/data/geocoding/en/690.dat +0 -0
  94. data/data/geocoding/en/690.txt +17 -0
  95. data/data/geocoding/en/7.dat +0 -0
  96. data/data/geocoding/en/7.txt +3 -0
  97. data/data/geocoding/en/81.dat +0 -0
  98. data/data/geocoding/en/81.txt +10 -2
  99. data/data/geocoding/en/850.dat +0 -0
  100. data/data/geocoding/en/850.txt +31 -0
  101. data/data/geocoding/en/880.dat +0 -0
  102. data/data/geocoding/en/880.txt +247 -613
  103. data/data/geocoding/en/92.dat +0 -0
  104. data/data/geocoding/en/92.txt +760 -0
  105. data/data/geocoding/en/94.dat +0 -0
  106. data/data/geocoding/en/94.txt +2 -2
  107. data/data/geocoding/en/961.dat +0 -0
  108. data/data/geocoding/en/961.txt +23 -0
  109. data/data/geocoding/en/962.dat +0 -0
  110. data/data/geocoding/en/962.txt +24 -2
  111. data/data/geocoding/en/963.dat +0 -0
  112. data/data/geocoding/en/963.txt +35 -0
  113. data/data/geocoding/en/967.dat +0 -0
  114. data/data/geocoding/en/967.txt +98 -0
  115. data/data/geocoding/en/970.dat +0 -0
  116. data/data/geocoding/en/970.txt +29 -0
  117. data/data/geocoding/en/993.dat +0 -0
  118. data/data/geocoding/en/993.txt +5 -0
  119. data/data/geocoding/en/995.dat +0 -0
  120. data/data/geocoding/en/995.txt +91 -0
  121. data/data/geocoding/es/54.dat +0 -0
  122. data/data/geocoding/es/54.txt +19 -6
  123. data/data/geocoding/es/56.dat +0 -0
  124. data/data/geocoding/es/56.txt +37 -1
  125. data/data/geocoding/es/58.dat +0 -0
  126. data/data/geocoding/es/58.txt +21 -12
  127. data/data/geocoding/fr/212.dat +0 -0
  128. data/data/geocoding/fr/212.txt +4 -4
  129. data/data/geocoding/fr/225.dat +0 -0
  130. data/data/geocoding/fr/225.txt +36 -4
  131. data/data/geocoding/fr/290.dat +0 -0
  132. data/data/geocoding/fr/290.txt +6 -1
  133. data/data/geocoding/fr/33.dat +0 -0
  134. data/data/geocoding/fr/33.txt +10586 -2165
  135. data/data/geocoding/fr/352.dat +0 -0
  136. data/data/geocoding/fr/352.txt +0 -1
  137. data/data/geocoding/hy/374.dat +0 -0
  138. data/data/geocoding/hy/374.txt +0 -5
  139. data/data/geocoding/ja/81.dat +0 -0
  140. data/data/geocoding/ja/81.txt +9 -1
  141. data/data/geocoding/ru/374.dat +0 -0
  142. data/data/geocoding/ru/374.txt +0 -6
  143. data/data/geocoding/ru/7.dat +0 -0
  144. data/data/geocoding/ru/7.txt +92 -1
  145. data/data/geocoding/th/66.dat +0 -0
  146. data/data/geocoding/th/66.txt +4 -0
  147. data/data/telephone_number_data_file.dat +0 -0
  148. data/data/telephone_number_data_file.xml +3166 -1562
  149. data/data/timezones/map_data.dat +0 -0
  150. data/data/timezones/map_data.txt +128 -46
  151. data/lib/importers/geo_location_data_importer.rb +1 -1
  152. data/lib/telephone_number.rb +0 -1
  153. data/lib/telephone_number/country.rb +22 -9
  154. data/lib/telephone_number/version.rb +1 -1
  155. data/telephone_number.gemspec +1 -0
  156. metadata +43 -6
  157. data/lib/utilities/hash.rb +0 -47
Binary file
@@ -681,6 +681,7 @@
681
681
  1321|America/New_York
682
682
  1323|America/Los_Angeles
683
683
  1325|America/Chicago
684
+ 1326|America/New_York
684
685
  1330|America/New_York
685
686
  1331|America/Chicago
686
687
  1332|America/New_York
@@ -700,6 +701,7 @@
700
701
  1361|America/Chicago
701
702
  1364|America/New_York
702
703
  1365|America/Toronto
704
+ 1367|America/Toronto
703
705
  1380|America/New_York
704
706
  1385|America/Denver
705
707
  1386|America/New_York
@@ -914,12 +916,14 @@
914
916
  1442|America/Los_Angeles
915
917
  1443|America/New_York
916
918
  1445|America/New_York
919
+ 1447|America/Chicago
917
920
  1450|America/Toronto
918
921
  1458|America/Los_Angeles
919
922
  1463|America/New_York
920
923
  1469|America/Chicago
921
924
  1470|America/New_York
922
925
  1473|America/Grenada
926
+ 1474|America/Winnipeg
923
927
  1475|America/New_York
924
928
  1478|America/New_York
925
929
  1479|America/Chicago
@@ -1158,11 +1162,13 @@
1158
1162
  1620384|America/Denver
1159
1163
  1623|America/Phoenix
1160
1164
  1626|America/Los_Angeles
1165
+ 1628|America/Los_Angeles
1161
1166
  1629|America/Chicago
1162
1167
  1630|America/Chicago
1163
1168
  1631|America/New_York
1164
1169
  1636|America/Chicago
1165
1170
  1639|America/Winnipeg
1171
+ 1640|America/New_York
1166
1172
  1641|America/Chicago
1167
1173
  1646|America/New_York
1168
1174
  1647|America/Toronto
@@ -1171,6 +1177,7 @@
1171
1177
  1651|America/Chicago
1172
1178
  1657|America/Los_Angeles
1173
1179
  1658|America/Jamaica
1180
+ 1659|America/Chicago
1174
1181
  1660|America/Chicago
1175
1182
  1661|America/Los_Angeles
1176
1183
  1662|America/Chicago
@@ -1179,6 +1186,7 @@
1179
1186
  1669|America/Los_Angeles
1180
1187
  1670|Pacific/Saipan
1181
1188
  1671|Pacific/Guam
1189
+ 1672|America/Vancouver
1182
1190
  1678|America/New_York
1183
1191
  1680|America/New_York
1184
1192
  1681|America/New_York
@@ -1602,6 +1610,8 @@
1602
1610
  1831|America/Los_Angeles
1603
1611
  1832|America/Chicago
1604
1612
  1838|America/New_York
1613
+ 1839|America/New_York
1614
+ 1840|America/Los_Angeles
1605
1615
  1843|America/New_York
1606
1616
  1845|America/New_York
1607
1617
  1847|America/Chicago
@@ -1965,6 +1975,7 @@
1965
1975
  1939|America/Puerto_Rico
1966
1976
  1940|America/Chicago
1967
1977
  1941|America/New_York
1978
+ 1945|America/Chicago
1968
1979
  1947|America/New_York
1969
1980
  1949|America/Los_Angeles
1970
1981
  1951|America/Los_Angeles
@@ -2063,16 +2074,15 @@
2063
2074
  297|America/Aruba
2064
2075
  298|Atlantic/Faeroe
2065
2076
  299|America/Godthab&America/Scoresbysund&America/Thule
2077
+ 2991|America/Godthab
2078
+ 2992|America/Godthab
2066
2079
  2993|America/Godthab
2080
+ 2994|America/Godthab
2081
+ 2995|America/Godthab
2067
2082
  2996|America/Godthab
2068
2083
  2998|America/Godthab
2069
- 29991|America/Godthab
2070
- 29992|America/Godthab
2071
- 29994|America/Godthab
2072
- 29995|America/Godthab
2073
- 29996|America/Godthab
2084
+ 2999|America/Godthab
2074
2085
  29997|America/Thule
2075
- 29998|America/Godthab
2076
2086
  29999|America/Scoresbysund
2077
2087
  30|Europe/Athens
2078
2088
  31|Europe/Amsterdam
@@ -2167,6 +2177,33 @@
2167
2177
  441534|Europe/Jersey
2168
2178
  441624|Europe/Isle_of_Man
2169
2179
  442|Europe/London
2180
+ 443|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
2181
+ 445|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
2182
+ 4470|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
2183
+ 4471|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
2184
+ 4472|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
2185
+ 4473|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
2186
+ 4474|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
2187
+ 4475|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
2188
+ 44760|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
2189
+ 44762|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
2190
+ 44763|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
2191
+ 447640|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
2192
+ 447641|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
2193
+ 447643|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
2194
+ 447644|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
2195
+ 447646|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
2196
+ 44765|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
2197
+ 44766|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
2198
+ 44767|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
2199
+ 44768|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
2200
+ 447693|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
2201
+ 447699|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
2202
+ 4477|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
2203
+ 4478|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
2204
+ 4479|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
2205
+ 448|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
2206
+ 449|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
2170
2207
  45|Europe/Copenhagen
2171
2208
  46|Europe/Stockholm
2172
2209
  47|Arctic/Longyearbyen&Europe/Oslo
@@ -2821,21 +2858,19 @@
2821
2858
  5598|America/Sao_Paulo
2822
2859
  5599|America/Sao_Paulo
2823
2860
  56|America/Santiago&Pacific/Easter
2861
+ 561|America/Santiago
2824
2862
  562|America/Santiago
2825
2863
  5632|Pacific/Easter
2864
+ 56322|America/Santiago
2865
+ 56323|America/Santiago
2826
2866
  5633|America/Santiago
2827
2867
  5634|America/Santiago
2828
2868
  5635|America/Santiago
2829
- 5641|America/Santiago
2830
- 5642|America/Santiago
2831
- 5643|America/Santiago
2832
- 5645|America/Santiago
2869
+ 564|America/Santiago
2833
2870
  565|America/Santiago
2834
- 5663|America/Santiago
2835
- 5664|America/Santiago
2836
- 5665|America/Santiago
2837
- 5667|America/Santiago
2871
+ 566|America/Santiago
2838
2872
  567|America/Santiago
2873
+ 568|America/Santiago
2839
2874
  569|America/Santiago
2840
2875
  57|America/Bogota
2841
2876
  58|America/Caracas
@@ -2843,6 +2878,7 @@
2843
2878
  591|America/La_Paz
2844
2879
  592|America/Guyana
2845
2880
  593|America/Guayaquil&Pacific/Galapagos
2881
+ 5931|America/Guayaquil&Pacific/Galapagos
2846
2882
  5932|America/Guayaquil
2847
2883
  5933|America/Guayaquil
2848
2884
  5934|America/Guayaquil
@@ -2850,18 +2886,21 @@
2850
2886
  59352|America/Guayaquil&Pacific/Galapagos
2851
2887
  5936|America/Guayaquil
2852
2888
  5937|America/Guayaquil
2889
+ 5939|America/Guayaquil
2853
2890
  594|America/Cayenne
2854
2891
  595|America/Asuncion
2855
2892
  596|America/Martinique
2856
2893
  597|America/Paramaribo
2857
2894
  598|America/Montevideo
2858
2895
  599|America/Curacao&America/Kralendijk
2859
- 599318|America/Kralendijk
2860
- 599416|America/Kralendijk
2896
+ 5993|America/Kralendijk
2897
+ 5994|America/Kralendijk
2898
+ 5996|America/Curacao
2861
2899
  5997|America/Kralendijk
2862
2900
  5999|America/Curacao
2863
2901
  60|Asia/Kuching
2864
2902
  61|Australia/Adelaide&Australia/Eucla&Australia/Lord_Howe&Australia/Perth&Australia/Sydney&Indian/Christmas&Indian/Cocos
2903
+ 611|Australia/Sydney
2865
2904
  612|Australia/Sydney
2866
2905
  61255007|Australia/Lord_Howe
2867
2906
  61255053|Australia/Lord_Howe
@@ -2886,6 +2925,7 @@
2886
2925
  61265632|Australia/Lord_Howe
2887
2926
  61265998|Australia/Lord_Howe
2888
2927
  613|Australia/Sydney
2928
+ 614|Australia/Sydney
2889
2929
  617|Australia/Sydney
2890
2930
  618510|Australia/Adelaide&Australia/Perth
2891
2931
  61851001|Indian/Christmas
@@ -2894,13 +2934,60 @@
2894
2934
  61851031|Indian/Cocos
2895
2935
  61851059|Indian/Christmas
2896
2936
  61851060|Indian/Cocos
2937
+ 61851087|Australia/Perth
2938
+ 61851088|Indian/Christmas
2939
+ 61851089|Indian/Cocos
2940
+ 6185109|Australia/Perth
2941
+ 618511|Australia/Perth
2942
+ 61851100|Australia/Adelaide&Australia/Perth
2897
2943
  61851116|Australia/Adelaide&Australia/Perth
2898
2944
  61851117|Indian/Christmas
2899
2945
  61851118|Indian/Cocos
2900
2946
  61851119|Australia/Adelaide&Australia/Perth
2901
2947
  6185112|Australia/Adelaide&Australia/Perth
2902
2948
  6185113|Australia/Adelaide&Australia/Perth
2903
- 6185114|Australia/Adelaide&Australia/Perth
2949
+ 61851140|Australia/Adelaide&Australia/Perth
2950
+ 61851141|Australia/Adelaide&Australia/Perth
2951
+ 61851142|Australia/Adelaide&Australia/Perth
2952
+ 61851143|Australia/Adelaide&Australia/Perth
2953
+ 61851144|Australia/Adelaide&Australia/Perth
2954
+ 61851146|Indian/Christmas
2955
+ 61851156|Australia/Adelaide&Australia/Perth
2956
+ 61851158|Australia/Adelaide&Australia/Perth
2957
+ 61851175|Indian/Christmas
2958
+ 61851176|Indian/Cocos
2959
+ 61851185|Australia/Adelaide&Australia/Perth
2960
+ 61851187|Australia/Adelaide&Australia/Perth
2961
+ 6185120|Australia/Perth
2962
+ 61851204|Indian/Christmas
2963
+ 61851205|Australia/Sydney
2964
+ 61851209|Australia/Adelaide&Australia/Perth
2965
+ 6185121|Australia/Adelaide&Australia/Perth
2966
+ 61851221|Australia/Adelaide&Australia/Perth
2967
+ 61851222|Indian/Christmas
2968
+ 61851223|Indian/Cocos
2969
+ 61851224|Australia/Perth
2970
+ 61851225|Australia/Perth
2971
+ 61851226|Australia/Perth
2972
+ 61851227|Australia/Adelaide&Australia/Perth
2973
+ 61851228|Australia/Adelaide&Australia/Perth
2974
+ 61851229|Australia/Adelaide&Australia/Perth
2975
+ 61851230|Australia/Sydney
2976
+ 61851231|Australia/Adelaide&Australia/Perth
2977
+ 61851232|Australia/Sydney
2978
+ 61851233|Australia/Sydney
2979
+ 61851234|Australia/Sydney
2980
+ 61851235|Indian/Christmas
2981
+ 61851236|Australia/Adelaide&Australia/Perth
2982
+ 61851237|Australia/Adelaide&Australia/Perth
2983
+ 61851238|Australia/Adelaide&Australia/Perth
2984
+ 61851239|Australia/Adelaide&Australia/Perth
2985
+ 6185124|Australia/Sydney
2986
+ 6185125|Australia/Sydney
2987
+ 6185126|Australia/Sydney
2988
+ 6185127|Australia/Adelaide&Australia/Perth
2989
+ 6185128|Australia/Adelaide&Australia/Perth
2990
+ 6185129|Australia/Adelaide&Australia/Perth
2904
2991
  6186|Australia/Adelaide&Australia/Perth
2905
2992
  6187|Australia/Adelaide&Australia/Perth
2906
2993
  6188|Australia/Adelaide&Australia/Perth
@@ -2941,11 +3028,15 @@
2941
3028
  61891700|Australia/Adelaide&Australia/Perth&Indian/Christmas
2942
3029
  61891701|Australia/Adelaide&Australia/Perth&Indian/Christmas
2943
3030
  61891702|Australia/Adelaide&Australia/Perth&Indian/Cocos
3031
+ 61891703|Indian/Cocos
2944
3032
  61891710|Australia/Adelaide&Australia/Perth&Indian/Christmas
2945
3033
  61891711|Australia/Adelaide&Australia/Perth&Indian/Christmas
2946
3034
  61891712|Australia/Adelaide&Australia/Perth&Indian/Christmas
3035
+ 61891958|Indian/Christmas
2947
3036
  61891959|Australia/Adelaide&Australia/Perth&Indian/Cocos
2948
3037
  62|Asia/Jakarta&Asia/Jayapura&Asia/Makassar
3038
+ 62007|Asia/Jakarta&Asia/Makassar
3039
+ 621|Asia/Jakarta&Asia/Makassar
2949
3040
  622|Asia/Jakarta
2950
3041
  6231|Asia/Jakarta
2951
3042
  6232|Asia/Jakarta
@@ -2953,12 +3044,8 @@
2953
3044
  6234|Asia/Jakarta
2954
3045
  6235|Asia/Jakarta
2955
3046
  6236|Asia/Makassar
2956
- 62370|Asia/Makassar
2957
- 62371|Asia/Makassar
2958
- 62372|Asia/Makassar
2959
- 62373|Asia/Makassar
2960
- 62374|Asia/Makassar
2961
- 62376|Asia/Makassar
3047
+ 6237|Asia/Makassar
3048
+ 62379|Asia/Jakarta&Asia/Makassar
2962
3049
  6238|Asia/Makassar
2963
3050
  624|Asia/Makassar
2964
3051
  62403|Asia/Jayapura&Asia/Makassar
@@ -2983,27 +3070,21 @@
2983
3070
  6256|Asia/Jakarta
2984
3071
  626|Asia/Jakarta
2985
3072
  627|Asia/Jakarta
2986
- 6281|Asia/Jakarta
3073
+ 628|Asia/Jakarta
3074
+ 6280|Asia/Jakarta&Asia/Makassar
2987
3075
  62811|Asia/Jakarta&Asia/Makassar
2988
3076
  62818|Asia/Jakarta&Asia/Makassar
2989
3077
  62819|Asia/Jakarta&Asia/Makassar
2990
- 6282|Asia/Jakarta
2991
3078
  62824|Asia/Jakarta&Asia/Makassar
2992
3079
  62829|Asia/Jakarta&Asia/Makassar
2993
- 6283|Asia/Jakarta
2994
3080
  62831|Asia/Jakarta&Asia/Makassar
2995
3081
  62833|Asia/Jakarta&Asia/Makassar
2996
3082
  62834|Asia/Jakarta&Asia/Makassar
2997
3083
  62839|Asia/Jakarta&Asia/Makassar
2998
- 6285|Asia/Jakarta
2999
3084
  62853|Asia/Jakarta&Asia/Makassar
3000
- 6286|Asia/Jakarta
3001
3085
  62868|Asia/Jakarta&Asia/Makassar
3002
- 6287|Asia/Jakarta
3003
3086
  62876|Asia/Jakarta&Asia/Makassar
3004
- 6288|Asia/Jakarta
3005
3087
  62887|Asia/Jakarta&Asia/Makassar
3006
- 6289|Asia/Jakarta
3007
3088
  6290|Asia/Jayapura
3008
3089
  6291|Asia/Jayapura
3009
3090
  62915|Asia/Jakarta&Asia/Jayapura
@@ -3026,11 +3107,16 @@
3026
3107
  6298|Asia/Jayapura
3027
3108
  63|Asia/Manila
3028
3109
  64|Pacific/Auckland&Pacific/Chatham
3110
+ 641|Pacific/Auckland
3111
+ 642|Pacific/Auckland
3029
3112
  643|Pacific/Auckland
3030
- 643305|Pacific/Chatham
3113
+ 64330|Pacific/Chatham
3031
3114
  644|Pacific/Auckland
3115
+ 645|Pacific/Auckland
3032
3116
  646|Pacific/Auckland
3033
3117
  647|Pacific/Auckland
3118
+ 6480|Pacific/Auckland
3119
+ 6486|Pacific/Auckland
3034
3120
  649|Pacific/Auckland
3035
3121
  65|Asia/Singapore
3036
3122
  66|Asia/Bangkok
@@ -3058,10 +3144,11 @@
3058
3144
  68989|Pacific/Tahiti
3059
3145
  690|Pacific/Fakaofo
3060
3146
  691|Pacific/Kosrae&Pacific/Ponape&Pacific/Truk
3147
+ 6913|Pacific/Truk
3061
3148
  69132|Pacific/Ponape
3062
- 69133|Pacific/Truk
3063
- 69135|Pacific/Truk
3064
3149
  69137|Pacific/Kosrae
3150
+ 6918|Pacific/Kosrae&Pacific/Ponape&Pacific/Truk
3151
+ 6919|Pacific/Kosrae&Pacific/Ponape&Pacific/Truk
3065
3152
  691920|Pacific/Ponape
3066
3153
  691921|Pacific/Ponape
3067
3154
  691924|Pacific/Ponape
@@ -3099,12 +3186,18 @@
3099
3186
  747|Europe/Moscow
3100
3187
  748|Europe/Moscow
3101
3188
  749|Europe/Moscow
3189
+ 77|Asia/Almaty&Asia/Aqtobe
3102
3190
  771|Asia/Almaty
3103
3191
  7711|Asia/Aqtobe
3104
3192
  7712|Asia/Aqtobe
3105
3193
  7713|Asia/Aqtobe
3106
3194
  772|Asia/Almaty
3107
3195
  7729|Asia/Aqtobe
3196
+ 7800|Asia/Almaty&Asia/Aqtobe&Europe/Moscow
3197
+ 7803|Europe/Moscow
3198
+ 7804|Europe/Moscow
3199
+ 7808|Asia/Almaty&Asia/Aqtobe&Europe/Moscow
3200
+ 7809|Asia/Almaty&Asia/Aqtobe&Europe/Moscow
3108
3201
  781|Europe/Moscow
3109
3202
  782|Europe/Moscow
3110
3203
  783|Europe/Moscow
@@ -3121,6 +3214,7 @@
3121
3214
  7855|Europe/Moscow
3122
3215
  786|Europe/Moscow
3123
3216
  787|Europe/Moscow
3217
+ 79|Europe/Moscow
3124
3218
  81|Asia/Tokyo
3125
3219
  82|Asia/Seoul
3126
3220
  84|Asia/Bangkok
@@ -3177,18 +3271,6 @@
3177
3271
  97624|Asia/Hovd
3178
3272
  97625|Asia/Ulaanbaatar
3179
3273
  976258|Asia/Choibalsan
3180
- 9765000|Asia/Ulaanbaatar
3181
- 9765001|Asia/Ulaanbaatar
3182
- 9765002|Asia/Ulaanbaatar
3183
- 9765006|Asia/Ulaanbaatar
3184
- 9765011|Asia/Ulaanbaatar
3185
- 9765037|Asia/Ulaanbaatar
3186
- 9765050|Asia/Ulaanbaatar
3187
- 9765088|Asia/Ulaanbaatar
3188
- 9765099|Asia/Ulaanbaatar
3189
- 9765515|Asia/Ulaanbaatar
3190
- 9765525|Asia/Ulaanbaatar
3191
- 9765526|Asia/Ulaanbaatar
3192
3274
  977|Asia/Katmandu
3193
3275
  98|Asia/Tehran
3194
3276
  992|Asia/Dushanbe
@@ -8,7 +8,7 @@ module TelephoneNumber
8
8
  master_data = {}
9
9
  bin_file_path = "#{File.dirname(file_path)}/#{File.basename(file_path, '.txt')}.dat"
10
10
 
11
- File.open(file_path, 'r').each do |row|
11
+ File.open(file_path, 'r:UTF-8').each do |row|
12
12
  next if row.strip !~ /^[0-9]/
13
13
  number, location = row.split('|')
14
14
  master_data[number.strip] = location.strip
@@ -1,5 +1,4 @@
1
1
  require 'telephone_number/version'
2
- require 'utilities/hash'
3
2
  require 'active_model/telephone_number_validator' if defined?(ActiveModel)
4
3
  require 'forwardable'
5
4
 
@@ -7,18 +7,18 @@ module TelephoneNumber
7
7
  MOBILE_TOKEN_COUNTRIES = { AR: '9' }.freeze
8
8
 
9
9
  def initialize(data_hash)
10
+ validations = data_hash.fetch(:validations, {}).dup
10
11
  @country_code = data_hash[:country_code]
11
12
  @country_id = data_hash[:id]
12
- @general_validation = NumberValidation.new(:general_desc, data_hash[:validations][:general_desc]) if data_hash.fetch(:validations, {})[:general_desc]
13
+ @general_validation = NumberValidation.new(:general_desc, validations[:general_desc]) if validations[:general_desc]
13
14
  @international_prefix = Regexp.new(data_hash[:international_prefix]) if data_hash[:international_prefix]
14
15
  @main_country_for_code = data_hash[:main_country_for_code] == 'true'
15
16
  @mobile_token = MOBILE_TOKEN_COUNTRIES[@country_id.to_sym]
16
17
  @national_prefix = data_hash[:national_prefix]
17
18
  @national_prefix_for_parsing = Regexp.new(data_hash[:national_prefix_for_parsing]) if data_hash[:national_prefix_for_parsing]
18
19
  @national_prefix_transform_rule = data_hash[:national_prefix_transform_rule]
19
- @validations = data_hash.fetch(:validations, {})
20
- .except(:general_desc, :area_code_optional)
21
- .map { |name, data| NumberValidation.new(name, data) }
20
+ @validations = validations.delete_if { |name, _| name == :general_desc || name == :area_code_optional }
21
+ .map { |name, data| NumberValidation.new(name, data) }
22
22
  @formats = data_hash.fetch(:formats, []).map { |format| NumberFormat.new(format, data_hash[:national_prefix_formatting_rule]) }
23
23
  end
24
24
 
@@ -52,11 +52,24 @@ module TelephoneNumber
52
52
  end
53
53
 
54
54
  def self.load_data
55
- data_file = "#{File.dirname(__FILE__)}/../../data/telephone_number_data_file.dat"
56
- main_data = Marshal.load(File.binread(data_file))
57
- override_data = {}
58
- override_data = Marshal.load(File.binread(TelephoneNumber.override_file)) if TelephoneNumber.override_file
59
- return main_data.deep_deep_merge!(override_data)
55
+ data_path = "#{File.dirname(__FILE__)}/../../data/telephone_number_data_file.dat"
56
+ main_data = Marshal.load(File.binread(data_path))
57
+ if TelephoneNumber.override_file
58
+ override_data = Marshal.load(File.binread(TelephoneNumber.override_file))
59
+ main_data = deep_merge(main_data, override_data)
60
+ end
61
+ main_data
62
+ end
63
+
64
+ def self.deep_merge(base_hash, other_hash)
65
+ other_hash.each do |key, value|
66
+ base_hash[key] = if base_hash[key].is_a?(Hash) && value.is_a?(Hash)
67
+ deep_merge(base_hash[key], value)
68
+ else
69
+ value
70
+ end
71
+ end
72
+ base_hash
60
73
  end
61
74
 
62
75
  def self.all_countries