telephone_number 1.2.0 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (435) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +72 -49
  3. data/Rakefile +2 -2
  4. data/data/geocoding/ar/82.dat +0 -0
  5. data/data/geocoding/ar/82.txt +34 -0
  6. data/data/geocoding/ar/966.dat +0 -0
  7. data/data/geocoding/ar/966.txt +27 -0
  8. data/data/geocoding/be/375.dat +0 -0
  9. data/data/geocoding/be/375.txt +144 -0
  10. data/data/geocoding/bg/359.dat +0 -0
  11. data/data/geocoding/bg/359.txt +2105 -0
  12. data/data/geocoding/bg/82.dat +0 -0
  13. data/data/geocoding/bg/82.txt +34 -0
  14. data/data/geocoding/ca/82.dat +0 -0
  15. data/data/geocoding/ca/82.txt +34 -0
  16. data/data/geocoding/cs/82.dat +0 -0
  17. data/data/geocoding/cs/82.txt +35 -0
  18. data/data/geocoding/de/32.dat +0 -0
  19. data/data/geocoding/de/32.txt +59 -0
  20. data/data/geocoding/de/352.dat +0 -0
  21. data/data/geocoding/de/352.txt +229 -0
  22. data/data/geocoding/de/41.dat +0 -0
  23. data/data/geocoding/de/41.txt +37 -0
  24. data/data/geocoding/de/43.dat +0 -0
  25. data/data/geocoding/de/43.txt +1037 -0
  26. data/data/geocoding/de/49.dat +0 -0
  27. data/data/geocoding/de/49.txt +5219 -0
  28. data/data/geocoding/el/30.dat +0 -0
  29. data/data/geocoding/el/30.txt +259 -0
  30. data/data/geocoding/el/82.dat +0 -0
  31. data/data/geocoding/el/82.txt +28 -0
  32. data/data/geocoding/en/1.dat +0 -0
  33. data/data/geocoding/en/1.txt +36239 -0
  34. data/data/geocoding/en/20.dat +0 -0
  35. data/data/geocoding/en/20.txt +45 -0
  36. data/data/geocoding/en/212.dat +0 -0
  37. data/data/geocoding/en/212.txt +86 -0
  38. data/data/geocoding/en/213.dat +0 -0
  39. data/data/geocoding/en/213.txt +30 -0
  40. data/data/geocoding/en/216.dat +0 -0
  41. data/data/geocoding/en/216.txt +26 -0
  42. data/data/geocoding/en/218.dat +0 -0
  43. data/data/geocoding/en/218.txt +42 -0
  44. data/data/geocoding/en/220.dat +0 -0
  45. data/data/geocoding/en/220.txt +59 -0
  46. data/data/geocoding/en/221.dat +0 -0
  47. data/data/geocoding/en/221.txt +19 -0
  48. data/data/geocoding/en/222.dat +0 -0
  49. data/data/geocoding/en/222.txt +28 -0
  50. data/data/geocoding/en/223.dat +0 -0
  51. data/data/geocoding/en/223.txt +37 -0
  52. data/data/geocoding/en/224.dat +0 -0
  53. data/data/geocoding/en/224.txt +38 -0
  54. data/data/geocoding/en/225.dat +0 -0
  55. data/data/geocoding/en/225.txt +28 -0
  56. data/data/geocoding/en/226.dat +0 -0
  57. data/data/geocoding/en/226.txt +50 -0
  58. data/data/geocoding/en/227.dat +0 -0
  59. data/data/geocoding/en/227.txt +42 -0
  60. data/data/geocoding/en/228.dat +0 -0
  61. data/data/geocoding/en/228.txt +24 -0
  62. data/data/geocoding/en/229.dat +0 -0
  63. data/data/geocoding/en/229.txt +52 -0
  64. data/data/geocoding/en/230.dat +0 -0
  65. data/data/geocoding/en/230.txt +25 -0
  66. data/data/geocoding/en/232.dat +0 -0
  67. data/data/geocoding/en/232.txt +20 -0
  68. data/data/geocoding/en/233.dat +0 -0
  69. data/data/geocoding/en/233.txt +96 -0
  70. data/data/geocoding/en/234.dat +0 -0
  71. data/data/geocoding/en/234.txt +79 -0
  72. data/data/geocoding/en/237.dat +0 -0
  73. data/data/geocoding/en/237.txt +125 -0
  74. data/data/geocoding/en/238.dat +0 -0
  75. data/data/geocoding/en/238.txt +54 -0
  76. data/data/geocoding/en/239.dat +0 -0
  77. data/data/geocoding/en/239.txt +35 -0
  78. data/data/geocoding/en/240.dat +0 -0
  79. data/data/geocoding/en/240.txt +547 -0
  80. data/data/geocoding/en/241.dat +0 -0
  81. data/data/geocoding/en/241.txt +48 -0
  82. data/data/geocoding/en/242.dat +0 -0
  83. data/data/geocoding/en/242.txt +23 -0
  84. data/data/geocoding/en/243.dat +0 -0
  85. data/data/geocoding/en/243.txt +22 -0
  86. data/data/geocoding/en/244.dat +0 -0
  87. data/data/geocoding/en/244.txt +54 -0
  88. data/data/geocoding/en/245.dat +0 -0
  89. data/data/geocoding/en/245.txt +38 -0
  90. data/data/geocoding/en/247.dat +0 -0
  91. data/data/geocoding/en/247.txt +27 -0
  92. data/data/geocoding/en/249.dat +0 -0
  93. data/data/geocoding/en/249.txt +28 -0
  94. data/data/geocoding/en/251.dat +0 -0
  95. data/data/geocoding/en/251.txt +386 -0
  96. data/data/geocoding/en/252.dat +0 -0
  97. data/data/geocoding/en/252.txt +23 -0
  98. data/data/geocoding/en/254.dat +0 -0
  99. data/data/geocoding/en/254.txt +46 -0
  100. data/data/geocoding/en/255.dat +0 -0
  101. data/data/geocoding/en/255.txt +24 -0
  102. data/data/geocoding/en/256.dat +0 -0
  103. data/data/geocoding/en/256.txt +30 -0
  104. data/data/geocoding/en/257.dat +0 -0
  105. data/data/geocoding/en/257.txt +28 -0
  106. data/data/geocoding/en/258.dat +0 -0
  107. data/data/geocoding/en/258.txt +27 -0
  108. data/data/geocoding/en/260.dat +0 -0
  109. data/data/geocoding/en/260.txt +26 -0
  110. data/data/geocoding/en/261.dat +0 -0
  111. data/data/geocoding/en/261.txt +40 -0
  112. data/data/geocoding/en/263.dat +0 -0
  113. data/data/geocoding/en/263.txt +138 -0
  114. data/data/geocoding/en/264.dat +0 -0
  115. data/data/geocoding/en/264.txt +1047 -0
  116. data/data/geocoding/en/266.dat +0 -0
  117. data/data/geocoding/en/266.txt +18 -0
  118. data/data/geocoding/en/267.dat +0 -0
  119. data/data/geocoding/en/267.txt +35 -0
  120. data/data/geocoding/en/268.dat +0 -0
  121. data/data/geocoding/en/268.txt +58 -0
  122. data/data/geocoding/en/269.dat +0 -0
  123. data/data/geocoding/en/269.txt +32 -0
  124. data/data/geocoding/en/27.dat +0 -0
  125. data/data/geocoding/en/27.txt +56 -0
  126. data/data/geocoding/en/290.dat +0 -0
  127. data/data/geocoding/en/290.txt +24 -0
  128. data/data/geocoding/en/299.dat +0 -0
  129. data/data/geocoding/en/299.txt +43 -0
  130. data/data/geocoding/en/30.dat +0 -0
  131. data/data/geocoding/en/30.txt +261 -0
  132. data/data/geocoding/en/31.dat +0 -0
  133. data/data/geocoding/en/31.txt +137 -0
  134. data/data/geocoding/en/32.dat +0 -0
  135. data/data/geocoding/en/32.txt +59 -0
  136. data/data/geocoding/en/33.dat +0 -0
  137. data/data/geocoding/en/33.txt +5592 -0
  138. data/data/geocoding/en/34.dat +0 -0
  139. data/data/geocoding/en/34.txt +132 -0
  140. data/data/geocoding/en/351.dat +0 -0
  141. data/data/geocoding/en/351.txt +67 -0
  142. data/data/geocoding/en/352.dat +0 -0
  143. data/data/geocoding/en/352.txt +229 -0
  144. data/data/geocoding/en/353.dat +0 -0
  145. data/data/geocoding/en/353.txt +71 -0
  146. data/data/geocoding/en/354.dat +0 -0
  147. data/data/geocoding/en/354.txt +23 -0
  148. data/data/geocoding/en/355.dat +0 -0
  149. data/data/geocoding/en/355.txt +188 -0
  150. data/data/geocoding/en/358.dat +0 -0
  151. data/data/geocoding/en/358.txt +73 -0
  152. data/data/geocoding/en/359.dat +0 -0
  153. data/data/geocoding/en/359.txt +2102 -0
  154. data/data/geocoding/en/36.dat +0 -0
  155. data/data/geocoding/en/36.txt +70 -0
  156. data/data/geocoding/en/370.dat +0 -0
  157. data/data/geocoding/en/370.txt +64 -0
  158. data/data/geocoding/en/371.dat +0 -0
  159. data/data/geocoding/en/371.txt +56 -0
  160. data/data/geocoding/en/372.dat +0 -0
  161. data/data/geocoding/en/372.txt +35 -0
  162. data/data/geocoding/en/373.dat +0 -0
  163. data/data/geocoding/en/373.txt +62 -0
  164. data/data/geocoding/en/374.dat +0 -0
  165. data/data/geocoding/en/374.txt +522 -0
  166. data/data/geocoding/en/375.dat +0 -0
  167. data/data/geocoding/en/375.txt +142 -0
  168. data/data/geocoding/en/380.dat +0 -0
  169. data/data/geocoding/en/380.txt +44 -0
  170. data/data/geocoding/en/381.dat +0 -0
  171. data/data/geocoding/en/381.txt +50 -0
  172. data/data/geocoding/en/389.dat +0 -0
  173. data/data/geocoding/en/389.txt +28 -0
  174. data/data/geocoding/en/39.dat +0 -0
  175. data/data/geocoding/en/39.txt +137 -0
  176. data/data/geocoding/en/40.dat +0 -0
  177. data/data/geocoding/en/40.txt +98 -0
  178. data/data/geocoding/en/41.dat +0 -0
  179. data/data/geocoding/en/41.txt +37 -0
  180. data/data/geocoding/en/420.dat +0 -0
  181. data/data/geocoding/en/420.txt +37 -0
  182. data/data/geocoding/en/421.dat +0 -0
  183. data/data/geocoding/en/421.txt +42 -0
  184. data/data/geocoding/en/43.dat +0 -0
  185. data/data/geocoding/en/43.txt +1036 -0
  186. data/data/geocoding/en/44.dat +0 -0
  187. data/data/geocoding/en/44.txt +870 -0
  188. data/data/geocoding/en/46.dat +0 -0
  189. data/data/geocoding/en/46.txt +280 -0
  190. data/data/geocoding/en/47.dat +0 -0
  191. data/data/geocoding/en/47.txt +49 -0
  192. data/data/geocoding/en/48.dat +0 -0
  193. data/data/geocoding/en/48.txt +65 -0
  194. data/data/geocoding/en/49.dat +0 -0
  195. data/data/geocoding/en/49.txt +5218 -0
  196. data/data/geocoding/en/501.dat +0 -0
  197. data/data/geocoding/en/501.txt +23 -0
  198. data/data/geocoding/en/504.dat +0 -0
  199. data/data/geocoding/en/504.txt +23 -0
  200. data/data/geocoding/en/51.dat +0 -0
  201. data/data/geocoding/en/51.txt +42 -0
  202. data/data/geocoding/en/52.dat +0 -0
  203. data/data/geocoding/en/52.txt +417 -0
  204. data/data/geocoding/en/53.dat +0 -0
  205. data/data/geocoding/en/53.txt +33 -0
  206. data/data/geocoding/en/54.dat +0 -0
  207. data/data/geocoding/en/54.txt +236 -0
  208. data/data/geocoding/en/55.dat +0 -0
  209. data/data/geocoding/en/55.txt +15271 -0
  210. data/data/geocoding/en/56.dat +0 -0
  211. data/data/geocoding/en/56.txt +41 -0
  212. data/data/geocoding/en/57.dat +0 -0
  213. data/data/geocoding/en/57.txt +186 -0
  214. data/data/geocoding/en/58.dat +0 -0
  215. data/data/geocoding/en/58.txt +73 -0
  216. data/data/geocoding/en/592.dat +0 -0
  217. data/data/geocoding/en/592.txt +82 -0
  218. data/data/geocoding/en/599.dat +0 -0
  219. data/data/geocoding/en/599.txt +22 -0
  220. data/data/geocoding/en/62.dat +0 -0
  221. data/data/geocoding/en/62.txt +325 -0
  222. data/data/geocoding/en/64.dat +0 -0
  223. data/data/geocoding/en/64.txt +124 -0
  224. data/data/geocoding/en/66.dat +0 -0
  225. data/data/geocoding/en/66.txt +40 -0
  226. data/data/geocoding/en/675.dat +0 -0
  227. data/data/geocoding/en/675.txt +28 -0
  228. data/data/geocoding/en/686.dat +0 -0
  229. data/data/geocoding/en/686.txt +71 -0
  230. data/data/geocoding/en/688.dat +0 -0
  231. data/data/geocoding/en/688.txt +25 -0
  232. data/data/geocoding/en/7.dat +0 -0
  233. data/data/geocoding/en/7.txt +397 -0
  234. data/data/geocoding/en/81.dat +0 -0
  235. data/data/geocoding/en/81.txt +1547 -0
  236. data/data/geocoding/en/82.dat +0 -0
  237. data/data/geocoding/en/82.txt +35 -0
  238. data/data/geocoding/en/84.dat +0 -0
  239. data/data/geocoding/en/84.txt +91 -0
  240. data/data/geocoding/en/86.dat +0 -0
  241. data/data/geocoding/en/86.txt +154857 -0
  242. data/data/geocoding/en/886.dat +0 -0
  243. data/data/geocoding/en/886.txt +30 -0
  244. data/data/geocoding/en/90.dat +0 -0
  245. data/data/geocoding/en/90.txt +182 -0
  246. data/data/geocoding/en/91.dat +0 -0
  247. data/data/geocoding/en/91.txt +2672 -0
  248. data/data/geocoding/en/93.dat +0 -0
  249. data/data/geocoding/en/93.txt +52 -0
  250. data/data/geocoding/en/94.dat +0 -0
  251. data/data/geocoding/en/94.txt +46 -0
  252. data/data/geocoding/en/95.dat +0 -0
  253. data/data/geocoding/en/95.txt +88 -0
  254. data/data/geocoding/en/960.dat +0 -0
  255. data/data/geocoding/en/960.txt +64 -0
  256. data/data/geocoding/en/962.dat +0 -0
  257. data/data/geocoding/en/962.txt +32 -0
  258. data/data/geocoding/en/966.dat +0 -0
  259. data/data/geocoding/en/966.txt +29 -0
  260. data/data/geocoding/en/968.dat +0 -0
  261. data/data/geocoding/en/968.txt +18 -0
  262. data/data/geocoding/en/972.dat +0 -0
  263. data/data/geocoding/en/972.txt +19 -0
  264. data/data/geocoding/en/975.dat +0 -0
  265. data/data/geocoding/en/975.txt +21 -0
  266. data/data/geocoding/en/976.dat +0 -0
  267. data/data/geocoding/en/976.txt +693 -0
  268. data/data/geocoding/en/98.dat +0 -0
  269. data/data/geocoding/en/98.txt +51 -0
  270. data/data/geocoding/en/992.dat +0 -0
  271. data/data/geocoding/en/992.txt +77 -0
  272. data/data/geocoding/en/994.dat +0 -0
  273. data/data/geocoding/en/994.txt +98 -0
  274. data/data/geocoding/es/228.dat +0 -0
  275. data/data/geocoding/es/228.txt +23 -0
  276. data/data/geocoding/es/230.dat +0 -0
  277. data/data/geocoding/es/230.txt +23 -0
  278. data/data/geocoding/es/34.dat +0 -0
  279. data/data/geocoding/es/34.txt +133 -0
  280. data/data/geocoding/es/52.dat +0 -0
  281. data/data/geocoding/es/52.txt +417 -0
  282. data/data/geocoding/es/54.dat +0 -0
  283. data/data/geocoding/es/54.txt +238 -0
  284. data/data/geocoding/es/56.dat +0 -0
  285. data/data/geocoding/es/56.txt +46 -0
  286. data/data/geocoding/es/57.dat +0 -0
  287. data/data/geocoding/es/57.txt +186 -0
  288. data/data/geocoding/es/58.dat +0 -0
  289. data/data/geocoding/es/58.txt +72 -0
  290. data/data/geocoding/es/82.dat +0 -0
  291. data/data/geocoding/es/82.txt +33 -0
  292. data/data/geocoding/fa/93.dat +0 -0
  293. data/data/geocoding/fa/93.txt +53 -0
  294. data/data/geocoding/fa/98.dat +0 -0
  295. data/data/geocoding/fa/98.txt +48 -0
  296. data/data/geocoding/fi/358.dat +0 -0
  297. data/data/geocoding/fi/358.txt +73 -0
  298. data/data/geocoding/fi/82.dat +0 -0
  299. data/data/geocoding/fi/82.txt +34 -0
  300. data/data/geocoding/fr/212.dat +0 -0
  301. data/data/geocoding/fr/212.txt +85 -0
  302. data/data/geocoding/fr/222.dat +0 -0
  303. data/data/geocoding/fr/222.txt +29 -0
  304. data/data/geocoding/fr/225.dat +0 -0
  305. data/data/geocoding/fr/225.txt +30 -0
  306. data/data/geocoding/fr/228.dat +0 -0
  307. data/data/geocoding/fr/228.txt +24 -0
  308. data/data/geocoding/fr/229.dat +0 -0
  309. data/data/geocoding/fr/229.txt +55 -0
  310. data/data/geocoding/fr/230.dat +0 -0
  311. data/data/geocoding/fr/230.txt +23 -0
  312. data/data/geocoding/fr/242.dat +0 -0
  313. data/data/geocoding/fr/242.txt +25 -0
  314. data/data/geocoding/fr/243.dat +0 -0
  315. data/data/geocoding/fr/243.txt +24 -0
  316. data/data/geocoding/fr/269.dat +0 -0
  317. data/data/geocoding/fr/269.txt +34 -0
  318. data/data/geocoding/fr/290.dat +0 -0
  319. data/data/geocoding/fr/290.txt +24 -0
  320. data/data/geocoding/fr/32.dat +0 -0
  321. data/data/geocoding/fr/32.txt +59 -0
  322. data/data/geocoding/fr/33.dat +0 -0
  323. data/data/geocoding/fr/33.txt +5593 -0
  324. data/data/geocoding/fr/352.dat +0 -0
  325. data/data/geocoding/fr/352.txt +231 -0
  326. data/data/geocoding/fr/41.dat +0 -0
  327. data/data/geocoding/fr/41.txt +37 -0
  328. data/data/geocoding/fr/82.dat +0 -0
  329. data/data/geocoding/fr/82.txt +33 -0
  330. data/data/geocoding/hi/82.dat +0 -0
  331. data/data/geocoding/hi/82.txt +36 -0
  332. data/data/geocoding/hu/36.dat +0 -0
  333. data/data/geocoding/hu/36.txt +71 -0
  334. data/data/geocoding/hu/82.dat +0 -0
  335. data/data/geocoding/hu/82.txt +35 -0
  336. data/data/geocoding/hy/374.dat +0 -0
  337. data/data/geocoding/hy/374.txt +515 -0
  338. data/data/geocoding/id/62.dat +0 -0
  339. data/data/geocoding/id/62.txt +326 -0
  340. data/data/geocoding/it/39.dat +0 -0
  341. data/data/geocoding/it/39.txt +248 -0
  342. data/data/geocoding/it/41.dat +0 -0
  343. data/data/geocoding/it/41.txt +37 -0
  344. data/data/geocoding/iw/82.dat +0 -0
  345. data/data/geocoding/iw/82.txt +37 -0
  346. data/data/geocoding/iw/972.dat +0 -0
  347. data/data/geocoding/iw/972.txt +21 -0
  348. data/data/geocoding/ja/81.dat +0 -0
  349. data/data/geocoding/ja/81.txt +1546 -0
  350. data/data/geocoding/ja/82.dat +0 -0
  351. data/data/geocoding/ja/82.txt +35 -0
  352. data/data/geocoding/ko/82.dat +0 -0
  353. data/data/geocoding/ko/82.txt +35 -0
  354. data/data/geocoding/nl/31.dat +0 -0
  355. data/data/geocoding/nl/31.txt +145 -0
  356. data/data/geocoding/nl/32.dat +0 -0
  357. data/data/geocoding/nl/32.txt +59 -0
  358. data/data/geocoding/pl/48.dat +0 -0
  359. data/data/geocoding/pl/48.txt +66 -0
  360. data/data/geocoding/pl/82.dat +0 -0
  361. data/data/geocoding/pl/82.txt +33 -0
  362. data/data/geocoding/pt/238.dat +0 -0
  363. data/data/geocoding/pt/238.txt +58 -0
  364. data/data/geocoding/pt/239.dat +0 -0
  365. data/data/geocoding/pt/239.txt +37 -0
  366. data/data/geocoding/pt/244.dat +0 -0
  367. data/data/geocoding/pt/244.txt +59 -0
  368. data/data/geocoding/pt/245.dat +0 -0
  369. data/data/geocoding/pt/245.txt +37 -0
  370. data/data/geocoding/pt/258.dat +0 -0
  371. data/data/geocoding/pt/258.txt +29 -0
  372. data/data/geocoding/pt/351.dat +0 -0
  373. data/data/geocoding/pt/351.txt +69 -0
  374. data/data/geocoding/pt/55.dat +0 -0
  375. data/data/geocoding/pt/55.txt +15269 -0
  376. data/data/geocoding/pt/82.dat +0 -0
  377. data/data/geocoding/pt/82.txt +34 -0
  378. data/data/geocoding/ro/373.dat +0 -0
  379. data/data/geocoding/ro/373.txt +61 -0
  380. data/data/geocoding/ro/40.dat +0 -0
  381. data/data/geocoding/ro/40.txt +99 -0
  382. data/data/geocoding/ro/82.dat +0 -0
  383. data/data/geocoding/ro/82.txt +29 -0
  384. data/data/geocoding/ru/373.dat +0 -0
  385. data/data/geocoding/ru/373.txt +61 -0
  386. data/data/geocoding/ru/374.dat +0 -0
  387. data/data/geocoding/ru/374.txt +515 -0
  388. data/data/geocoding/ru/375.dat +0 -0
  389. data/data/geocoding/ru/375.txt +143 -0
  390. data/data/geocoding/ru/7.dat +0 -0
  391. data/data/geocoding/ru/7.txt +313 -0
  392. data/data/geocoding/ru/82.dat +0 -0
  393. data/data/geocoding/ru/82.txt +34 -0
  394. data/data/geocoding/sl/82.dat +0 -0
  395. data/data/geocoding/sl/82.txt +17 -0
  396. data/data/geocoding/sr/381.dat +0 -0
  397. data/data/geocoding/sr/381.txt +51 -0
  398. data/data/geocoding/sr/82.dat +0 -0
  399. data/data/geocoding/sr/82.txt +23 -0
  400. data/data/geocoding/sv/358.dat +0 -0
  401. data/data/geocoding/sv/358.txt +73 -0
  402. data/data/geocoding/sv/46.dat +0 -0
  403. data/data/geocoding/sv/46.txt +266 -0
  404. data/data/geocoding/th/66.dat +0 -0
  405. data/data/geocoding/th/66.txt +39 -0
  406. data/data/geocoding/tr/82.dat +0 -0
  407. data/data/geocoding/tr/82.txt +35 -0
  408. data/data/geocoding/tr/90.dat +0 -0
  409. data/data/geocoding/tr/90.txt +182 -0
  410. data/data/geocoding/uk/82.dat +0 -0
  411. data/data/geocoding/uk/82.txt +34 -0
  412. data/data/geocoding/vi/82.dat +0 -0
  413. data/data/geocoding/vi/82.txt +33 -0
  414. data/data/geocoding/vi/84.dat +0 -0
  415. data/data/geocoding/vi/84.txt +91 -0
  416. data/data/geocoding/zh/82.dat +0 -0
  417. data/data/geocoding/zh/82.txt +35 -0
  418. data/data/geocoding/zh/86.dat +0 -0
  419. data/data/geocoding/zh/86.txt +154857 -0
  420. data/data/geocoding/zh/886.dat +0 -0
  421. data/data/geocoding/zh/886.txt +30 -0
  422. data/data/geocoding/zh_Hant/82.dat +0 -0
  423. data/data/geocoding/zh_Hant/82.txt +35 -0
  424. data/data/geocoding/zh_Hant/886.dat +0 -0
  425. data/data/geocoding/zh_Hant/886.txt +30 -0
  426. data/lib/importers/geo_location_data_importer.rb +20 -0
  427. data/lib/{telephone_number/data_importer.rb → importers/phone_data_importer.rb} +1 -1
  428. data/lib/{telephone_number/test_data_generator.rb → importers/test_data_importer.rb} +3 -3
  429. data/lib/telephone_number.rb +12 -9
  430. data/lib/telephone_number/class_methods.rb +3 -12
  431. data/lib/telephone_number/country.rb +1 -1
  432. data/lib/telephone_number/geo_locator.rb +62 -0
  433. data/lib/telephone_number/number.rb +22 -4
  434. data/lib/telephone_number/version.rb +1 -1
  435. metadata +428 -4
Binary file
@@ -0,0 +1,30 @@
1
+ # Copyright (C) 2011 The Libphonenumber Authors
2
+
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ # Generated from:
16
+ # http://zh.wikipedia.org/zh-cn/中華民國長途電話區號表 [16772295]
17
+
18
+ 8862|台北
19
+ 8863|桃园、新竹、花莲、宜兰
20
+ 88637|苗栗
21
+ 8864|台中、彰化
22
+ 88649|南投
23
+ 8865|嘉义、云林
24
+ 8866|台南、澎湖
25
+ 8867|高雄
26
+ 8868|屏东
27
+ 88682|金门
28
+ 886826|乌丘
29
+ 886836|马祖
30
+ 88689|台东
Binary file
@@ -0,0 +1,35 @@
1
+ # Copyright (C) 2011 The Libphonenumber Authors
2
+
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ # Generated from: translation of
16
+ # http://www.itu.int/oth/T0202000072/en [2004-03-01]
17
+ # http://en.wikipedia.org/wiki/+82 [390794641]
18
+
19
+ 822|首爾市
20
+ 8231|京畿道
21
+ 8232|仁川廣
22
+ 8233|江原道
23
+ 8241|忠清南道
24
+ 8242|大田廣
25
+ 8243|忠清北道
26
+ 8244|世宗市
27
+ 8251|釜山廣
28
+ 8252|蔚山廣
29
+ 8253|大邱廣
30
+ 8254|慶尚北道
31
+ 8255|慶尚南道
32
+ 8261|全羅南道
33
+ 8262|光州廣
34
+ 8263|全羅北道
35
+ 8264|濟州道
Binary file
@@ -0,0 +1,30 @@
1
+ # Copyright (C) 2011 The Libphonenumber Authors
2
+
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ # Generated from:
16
+ # http://zh.wikipedia.org/wiki/中華民國長途電話區號表 [16772295]
17
+
18
+ 8862|臺北
19
+ 8863|桃園、新竹、花蓮、宜蘭
20
+ 88637|苗栗
21
+ 8864|臺中、彰化
22
+ 88649|南投
23
+ 8865|嘉義、雲林
24
+ 8866|臺南、澎湖
25
+ 8867|高雄
26
+ 8868|屏東
27
+ 88682|金門
28
+ 886826|烏坵
29
+ 886836|馬祖
30
+ 88689|臺東
@@ -0,0 +1,20 @@
1
+ module TelephoneNumber
2
+ class GeoLocationDataImporter
3
+ def self.load_data!
4
+ Dir.glob("data/geocoding/**/*.txt").each { |file| process_file(file) }
5
+ end
6
+
7
+ def self.process_file(file_path)
8
+ master_data = {}
9
+ bin_file_path = "#{File.dirname(file_path)}/#{File.basename(file_path, '.txt')}.dat"
10
+
11
+ File.open(file_path, 'r').each do |row|
12
+ next if row.strip !~ /^[0-9]/
13
+ number, location = row.split('|')
14
+ master_data[number.strip] = location.strip
15
+ end
16
+
17
+ File.open(bin_file_path, 'wb'){ |file| file << Marshal.dump(master_data) }
18
+ end
19
+ end
20
+ end
@@ -1,6 +1,6 @@
1
1
  module TelephoneNumber
2
2
  require 'nokogiri'
3
- class DataImporter
3
+ class PhoneDataImporter
4
4
  attr_reader :data, :file, :override
5
5
 
6
6
  def initialize(file_name, override: false)
@@ -3,7 +3,7 @@ module TelephoneNumber
3
3
  require 'httparty'
4
4
  require 'yaml'
5
5
 
6
- class TestDataGenerator
6
+ class TestDataImporter
7
7
  URL = "https://libphonenumber.appspot.com/phonenumberparser?number=%s&country=%s".freeze
8
8
  COUNTRIES = {
9
9
  AE: %w(971529933171 971553006144 971551000291),
@@ -105,9 +105,9 @@ module TelephoneNumber
105
105
 
106
106
  def self.write_file(data)
107
107
  File.open('test/valid_numbers.yml', 'w') do |file|
108
- file.write "# This file is generated automatically by TestDataGenerator. \n" \
108
+ file.write "# This file is generated automatically by TestDataImporter. \n" \
109
109
  "# Any changes made to this file will be overridden next time test data is generated. \n" \
110
- "# Please edit TestDataGenerator if you need to add test cases. \n"
110
+ "# Please edit TestDataImporter if you need to add test cases. \n"
111
111
 
112
112
  file.write data.to_yaml
113
113
  end
@@ -1,17 +1,20 @@
1
1
  require 'telephone_number/version'
2
2
  require 'utilities/hash'
3
3
  require 'active_model/telephone_number_validator' if defined?(ActiveModel)
4
+ require 'forwardable'
4
5
 
5
6
  module TelephoneNumber
6
- autoload :DataImporter, 'telephone_number/data_importer'
7
- autoload :TestDataGenerator, 'telephone_number/test_data_generator'
8
- autoload :Parser, 'telephone_number/parser'
9
- autoload :Number, 'telephone_number/number'
10
- autoload :Formatter, 'telephone_number/formatter'
11
- autoload :Country, 'telephone_number/country'
12
- autoload :NumberFormat, 'telephone_number/number_format'
13
- autoload :NumberValidation, 'telephone_number/number_validation'
14
- autoload :ClassMethods, 'telephone_number/class_methods'
7
+ autoload :ClassMethods, 'telephone_number/class_methods'
8
+ autoload :Country, 'telephone_number/country'
9
+ autoload :Formatter, 'telephone_number/formatter'
10
+ autoload :GeoLocator, 'telephone_number/geo_locator'
11
+ autoload :Number, 'telephone_number/number'
12
+ autoload :NumberFormat, 'telephone_number/number_format'
13
+ autoload :NumberValidation, 'telephone_number/number_validation'
14
+ autoload :Parser, 'telephone_number/parser'
15
+ autoload :GeoLocationDataImporter, 'importers/geo_location_data_importer'
16
+ autoload :PhoneDataImporter, 'importers/phone_data_importer'
17
+ autoload :TestDataImporter, 'importers/test_data_importer'
15
18
 
16
19
  extend ClassMethods
17
20
  end
@@ -7,11 +7,11 @@ module TelephoneNumber
7
7
  @default_format_pattern = Regexp.new(format_string)
8
8
  end
9
9
 
10
- def parse(number, country = detect_country(number))
10
+ def parse(number, country = nil)
11
11
  TelephoneNumber::Number.new(sanitize(number), country)
12
12
  end
13
13
 
14
- def valid?(number, country = detect_country(number), keys = [])
14
+ def valid?(number, country = nil, keys = [])
15
15
  parse(number, country).valid?(keys)
16
16
  end
17
17
 
@@ -23,18 +23,9 @@ module TelephoneNumber
23
23
  input_number.to_s.gsub(/\D/, '')
24
24
  end
25
25
 
26
- def detect_country(number)
27
- sanitized_number = sanitize(number)
28
- detected_country = Country.all_countries.detect do |country|
29
- sanitized_number.start_with?(country.country_code) && valid?(sanitized_number, country.country_id)
30
- end
31
-
32
- detected_country.country_id.to_sym if detected_country
33
- end
34
-
35
26
  # generates binary file from xml that user gives us
36
27
  def generate_override_file(file)
37
- DataImporter.new(file, override: true).import!
28
+ PhoneDataImporter.new(file, override: true).import!
38
29
  end
39
30
  end
40
31
  end
@@ -4,7 +4,7 @@ module TelephoneNumber
4
4
  :national_prefix_for_parsing, :national_prefix_transform_rule, :international_prefix,
5
5
  :formats, :validations, :mobile_token, :country_id, :general_validation, :main_country_for_code
6
6
 
7
- MOBILE_TOKEN_COUNTRIES = { AR: '9' }
7
+ MOBILE_TOKEN_COUNTRIES = { AR: '9' }.freeze
8
8
 
9
9
  def initialize(data_hash)
10
10
  @country_code = data_hash[:country_code]
@@ -0,0 +1,62 @@
1
+ module TelephoneNumber
2
+ class GeoLocator
3
+ attr_accessor :phone_number, :normalized_number, :location, :locale
4
+
5
+ # initialize with a phone_number object
6
+ def initialize(phone_number, locale)
7
+ @phone_number = phone_number
8
+ @normalized_number = build_normalized_number
9
+ @locale = locale
10
+ end
11
+
12
+ def location
13
+ return unless phone_number.valid?
14
+ @location ||= find_location
15
+ end
16
+
17
+ def location_data
18
+ @location_data ||= fetch_location_data
19
+ end
20
+
21
+ private
22
+
23
+ def find_location
24
+ number = normalized_number.dup
25
+ location = nil
26
+ (number.length - 2).times { break if location = location_data[number.chop!] }
27
+ location
28
+ end
29
+
30
+ def fetch_location_data
31
+ return {} unless location_file = find_location_file
32
+ Marshal.load(File.binread(location_file))
33
+ end
34
+
35
+ def find_location_file
36
+ locale_path = geocoding_path(locale)
37
+ path = locale_path.empty? ? geocoding_path(:en) : locale_path
38
+
39
+ path.sort { |a, b| b <=> a }.detect do |path|
40
+ normalized_number =~ /^#{File.basename(path, 'dat')}/
41
+ end
42
+ end
43
+
44
+ def geocoding_path(locale)
45
+ path = File.join('data', 'geocoding', locale.to_s, '*.dat')
46
+ Dir.glob(path)
47
+ end
48
+
49
+ # Google's geocoding data is odd in that it uses a non-standard format for lookups
50
+ # on countries that have a mobile token. In short, we need to remove it. See the link
51
+ # below for reference.
52
+ # https://github.com/googlei18n/libphonenumber/blob/master/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/PhoneNumberOfflineGeocoder.java#L121
53
+ def build_normalized_number
54
+ return phone_number.e164_number(formatted: false) unless mobile_token = phone_number.country.mobile_token
55
+ if phone_number.parser.normalized_number.start_with?(mobile_token)
56
+ phone_number.e164_number(formatted: false).sub(mobile_token, '')
57
+ else
58
+ phone_number.e164_number(formatted: false)
59
+ end
60
+ end
61
+ end
62
+ end
@@ -2,16 +2,34 @@ module TelephoneNumber
2
2
  class Number
3
3
  extend Forwardable
4
4
 
5
- attr_reader :country, :parser, :formatter, :original_number
5
+ attr_reader :country, :parser, :formatter, :original_number, :geo_locator
6
6
 
7
7
  delegate [:valid?, :valid_types, :normalized_number] => :parser
8
8
  delegate [:national_number, :e164_number, :international_number] => :formatter
9
9
 
10
- def initialize(number, country)
11
- @original_number = number
12
- @country = Country.find(country)
10
+ def initialize(number, country = nil)
11
+ @original_number = TelephoneNumber.sanitize(number)
12
+ @country = country ? Country.find(country) : detect_country
13
13
  @parser = Parser.new(self)
14
14
  @formatter = Formatter.new(self)
15
15
  end
16
+
17
+ def location(locale = :en)
18
+ @geo_locator ||= GeoLocator.new(self, locale)
19
+ @geo_locator.location
20
+ end
21
+
22
+ private
23
+
24
+ def detect_country
25
+ # note that it is entirely possible for two separate countries to use the same
26
+ # validation scheme. Take Italy and Vatican City for example.
27
+ eligible_countries = Country.all_countries.select do |country|
28
+ original_number.start_with?(country.country_code) && self.class.new(original_number, country.country_id).valid?
29
+ end
30
+
31
+ detected_country = eligible_countries.detect(&:main_country_for_code) || eligible_countries.first
32
+ Country.find(detected_country.country_id.to_sym) if detected_country
33
+ end
16
34
  end
17
35
  end
@@ -1,3 +1,3 @@
1
1
  module TelephoneNumber
2
- VERSION = "1.2.0"
2
+ VERSION = "1.2.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: telephone_number
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - MOBI Wireless Management
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-09-11 00:00:00.000000000 Z
11
+ date: 2017-10-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -157,19 +157,443 @@ files:
157
157
  - Rakefile
158
158
  - bin/console
159
159
  - bin/setup
160
+ - data/geocoding/ar/82.dat
161
+ - data/geocoding/ar/82.txt
162
+ - data/geocoding/ar/966.dat
163
+ - data/geocoding/ar/966.txt
164
+ - data/geocoding/be/375.dat
165
+ - data/geocoding/be/375.txt
166
+ - data/geocoding/bg/359.dat
167
+ - data/geocoding/bg/359.txt
168
+ - data/geocoding/bg/82.dat
169
+ - data/geocoding/bg/82.txt
170
+ - data/geocoding/ca/82.dat
171
+ - data/geocoding/ca/82.txt
172
+ - data/geocoding/cs/82.dat
173
+ - data/geocoding/cs/82.txt
174
+ - data/geocoding/de/32.dat
175
+ - data/geocoding/de/32.txt
176
+ - data/geocoding/de/352.dat
177
+ - data/geocoding/de/352.txt
178
+ - data/geocoding/de/41.dat
179
+ - data/geocoding/de/41.txt
180
+ - data/geocoding/de/43.dat
181
+ - data/geocoding/de/43.txt
182
+ - data/geocoding/de/49.dat
183
+ - data/geocoding/de/49.txt
184
+ - data/geocoding/el/30.dat
185
+ - data/geocoding/el/30.txt
186
+ - data/geocoding/el/82.dat
187
+ - data/geocoding/el/82.txt
188
+ - data/geocoding/en/1.dat
189
+ - data/geocoding/en/1.txt
190
+ - data/geocoding/en/20.dat
191
+ - data/geocoding/en/20.txt
192
+ - data/geocoding/en/212.dat
193
+ - data/geocoding/en/212.txt
194
+ - data/geocoding/en/213.dat
195
+ - data/geocoding/en/213.txt
196
+ - data/geocoding/en/216.dat
197
+ - data/geocoding/en/216.txt
198
+ - data/geocoding/en/218.dat
199
+ - data/geocoding/en/218.txt
200
+ - data/geocoding/en/220.dat
201
+ - data/geocoding/en/220.txt
202
+ - data/geocoding/en/221.dat
203
+ - data/geocoding/en/221.txt
204
+ - data/geocoding/en/222.dat
205
+ - data/geocoding/en/222.txt
206
+ - data/geocoding/en/223.dat
207
+ - data/geocoding/en/223.txt
208
+ - data/geocoding/en/224.dat
209
+ - data/geocoding/en/224.txt
210
+ - data/geocoding/en/225.dat
211
+ - data/geocoding/en/225.txt
212
+ - data/geocoding/en/226.dat
213
+ - data/geocoding/en/226.txt
214
+ - data/geocoding/en/227.dat
215
+ - data/geocoding/en/227.txt
216
+ - data/geocoding/en/228.dat
217
+ - data/geocoding/en/228.txt
218
+ - data/geocoding/en/229.dat
219
+ - data/geocoding/en/229.txt
220
+ - data/geocoding/en/230.dat
221
+ - data/geocoding/en/230.txt
222
+ - data/geocoding/en/232.dat
223
+ - data/geocoding/en/232.txt
224
+ - data/geocoding/en/233.dat
225
+ - data/geocoding/en/233.txt
226
+ - data/geocoding/en/234.dat
227
+ - data/geocoding/en/234.txt
228
+ - data/geocoding/en/237.dat
229
+ - data/geocoding/en/237.txt
230
+ - data/geocoding/en/238.dat
231
+ - data/geocoding/en/238.txt
232
+ - data/geocoding/en/239.dat
233
+ - data/geocoding/en/239.txt
234
+ - data/geocoding/en/240.dat
235
+ - data/geocoding/en/240.txt
236
+ - data/geocoding/en/241.dat
237
+ - data/geocoding/en/241.txt
238
+ - data/geocoding/en/242.dat
239
+ - data/geocoding/en/242.txt
240
+ - data/geocoding/en/243.dat
241
+ - data/geocoding/en/243.txt
242
+ - data/geocoding/en/244.dat
243
+ - data/geocoding/en/244.txt
244
+ - data/geocoding/en/245.dat
245
+ - data/geocoding/en/245.txt
246
+ - data/geocoding/en/247.dat
247
+ - data/geocoding/en/247.txt
248
+ - data/geocoding/en/249.dat
249
+ - data/geocoding/en/249.txt
250
+ - data/geocoding/en/251.dat
251
+ - data/geocoding/en/251.txt
252
+ - data/geocoding/en/252.dat
253
+ - data/geocoding/en/252.txt
254
+ - data/geocoding/en/254.dat
255
+ - data/geocoding/en/254.txt
256
+ - data/geocoding/en/255.dat
257
+ - data/geocoding/en/255.txt
258
+ - data/geocoding/en/256.dat
259
+ - data/geocoding/en/256.txt
260
+ - data/geocoding/en/257.dat
261
+ - data/geocoding/en/257.txt
262
+ - data/geocoding/en/258.dat
263
+ - data/geocoding/en/258.txt
264
+ - data/geocoding/en/260.dat
265
+ - data/geocoding/en/260.txt
266
+ - data/geocoding/en/261.dat
267
+ - data/geocoding/en/261.txt
268
+ - data/geocoding/en/263.dat
269
+ - data/geocoding/en/263.txt
270
+ - data/geocoding/en/264.dat
271
+ - data/geocoding/en/264.txt
272
+ - data/geocoding/en/266.dat
273
+ - data/geocoding/en/266.txt
274
+ - data/geocoding/en/267.dat
275
+ - data/geocoding/en/267.txt
276
+ - data/geocoding/en/268.dat
277
+ - data/geocoding/en/268.txt
278
+ - data/geocoding/en/269.dat
279
+ - data/geocoding/en/269.txt
280
+ - data/geocoding/en/27.dat
281
+ - data/geocoding/en/27.txt
282
+ - data/geocoding/en/290.dat
283
+ - data/geocoding/en/290.txt
284
+ - data/geocoding/en/299.dat
285
+ - data/geocoding/en/299.txt
286
+ - data/geocoding/en/30.dat
287
+ - data/geocoding/en/30.txt
288
+ - data/geocoding/en/31.dat
289
+ - data/geocoding/en/31.txt
290
+ - data/geocoding/en/32.dat
291
+ - data/geocoding/en/32.txt
292
+ - data/geocoding/en/33.dat
293
+ - data/geocoding/en/33.txt
294
+ - data/geocoding/en/34.dat
295
+ - data/geocoding/en/34.txt
296
+ - data/geocoding/en/351.dat
297
+ - data/geocoding/en/351.txt
298
+ - data/geocoding/en/352.dat
299
+ - data/geocoding/en/352.txt
300
+ - data/geocoding/en/353.dat
301
+ - data/geocoding/en/353.txt
302
+ - data/geocoding/en/354.dat
303
+ - data/geocoding/en/354.txt
304
+ - data/geocoding/en/355.dat
305
+ - data/geocoding/en/355.txt
306
+ - data/geocoding/en/358.dat
307
+ - data/geocoding/en/358.txt
308
+ - data/geocoding/en/359.dat
309
+ - data/geocoding/en/359.txt
310
+ - data/geocoding/en/36.dat
311
+ - data/geocoding/en/36.txt
312
+ - data/geocoding/en/370.dat
313
+ - data/geocoding/en/370.txt
314
+ - data/geocoding/en/371.dat
315
+ - data/geocoding/en/371.txt
316
+ - data/geocoding/en/372.dat
317
+ - data/geocoding/en/372.txt
318
+ - data/geocoding/en/373.dat
319
+ - data/geocoding/en/373.txt
320
+ - data/geocoding/en/374.dat
321
+ - data/geocoding/en/374.txt
322
+ - data/geocoding/en/375.dat
323
+ - data/geocoding/en/375.txt
324
+ - data/geocoding/en/380.dat
325
+ - data/geocoding/en/380.txt
326
+ - data/geocoding/en/381.dat
327
+ - data/geocoding/en/381.txt
328
+ - data/geocoding/en/389.dat
329
+ - data/geocoding/en/389.txt
330
+ - data/geocoding/en/39.dat
331
+ - data/geocoding/en/39.txt
332
+ - data/geocoding/en/40.dat
333
+ - data/geocoding/en/40.txt
334
+ - data/geocoding/en/41.dat
335
+ - data/geocoding/en/41.txt
336
+ - data/geocoding/en/420.dat
337
+ - data/geocoding/en/420.txt
338
+ - data/geocoding/en/421.dat
339
+ - data/geocoding/en/421.txt
340
+ - data/geocoding/en/43.dat
341
+ - data/geocoding/en/43.txt
342
+ - data/geocoding/en/44.dat
343
+ - data/geocoding/en/44.txt
344
+ - data/geocoding/en/46.dat
345
+ - data/geocoding/en/46.txt
346
+ - data/geocoding/en/47.dat
347
+ - data/geocoding/en/47.txt
348
+ - data/geocoding/en/48.dat
349
+ - data/geocoding/en/48.txt
350
+ - data/geocoding/en/49.dat
351
+ - data/geocoding/en/49.txt
352
+ - data/geocoding/en/501.dat
353
+ - data/geocoding/en/501.txt
354
+ - data/geocoding/en/504.dat
355
+ - data/geocoding/en/504.txt
356
+ - data/geocoding/en/51.dat
357
+ - data/geocoding/en/51.txt
358
+ - data/geocoding/en/52.dat
359
+ - data/geocoding/en/52.txt
360
+ - data/geocoding/en/53.dat
361
+ - data/geocoding/en/53.txt
362
+ - data/geocoding/en/54.dat
363
+ - data/geocoding/en/54.txt
364
+ - data/geocoding/en/55.dat
365
+ - data/geocoding/en/55.txt
366
+ - data/geocoding/en/56.dat
367
+ - data/geocoding/en/56.txt
368
+ - data/geocoding/en/57.dat
369
+ - data/geocoding/en/57.txt
370
+ - data/geocoding/en/58.dat
371
+ - data/geocoding/en/58.txt
372
+ - data/geocoding/en/592.dat
373
+ - data/geocoding/en/592.txt
374
+ - data/geocoding/en/599.dat
375
+ - data/geocoding/en/599.txt
376
+ - data/geocoding/en/62.dat
377
+ - data/geocoding/en/62.txt
378
+ - data/geocoding/en/64.dat
379
+ - data/geocoding/en/64.txt
380
+ - data/geocoding/en/66.dat
381
+ - data/geocoding/en/66.txt
382
+ - data/geocoding/en/675.dat
383
+ - data/geocoding/en/675.txt
384
+ - data/geocoding/en/686.dat
385
+ - data/geocoding/en/686.txt
386
+ - data/geocoding/en/688.dat
387
+ - data/geocoding/en/688.txt
388
+ - data/geocoding/en/7.dat
389
+ - data/geocoding/en/7.txt
390
+ - data/geocoding/en/81.dat
391
+ - data/geocoding/en/81.txt
392
+ - data/geocoding/en/82.dat
393
+ - data/geocoding/en/82.txt
394
+ - data/geocoding/en/84.dat
395
+ - data/geocoding/en/84.txt
396
+ - data/geocoding/en/86.dat
397
+ - data/geocoding/en/86.txt
398
+ - data/geocoding/en/886.dat
399
+ - data/geocoding/en/886.txt
400
+ - data/geocoding/en/90.dat
401
+ - data/geocoding/en/90.txt
402
+ - data/geocoding/en/91.dat
403
+ - data/geocoding/en/91.txt
404
+ - data/geocoding/en/93.dat
405
+ - data/geocoding/en/93.txt
406
+ - data/geocoding/en/94.dat
407
+ - data/geocoding/en/94.txt
408
+ - data/geocoding/en/95.dat
409
+ - data/geocoding/en/95.txt
410
+ - data/geocoding/en/960.dat
411
+ - data/geocoding/en/960.txt
412
+ - data/geocoding/en/962.dat
413
+ - data/geocoding/en/962.txt
414
+ - data/geocoding/en/966.dat
415
+ - data/geocoding/en/966.txt
416
+ - data/geocoding/en/968.dat
417
+ - data/geocoding/en/968.txt
418
+ - data/geocoding/en/972.dat
419
+ - data/geocoding/en/972.txt
420
+ - data/geocoding/en/975.dat
421
+ - data/geocoding/en/975.txt
422
+ - data/geocoding/en/976.dat
423
+ - data/geocoding/en/976.txt
424
+ - data/geocoding/en/98.dat
425
+ - data/geocoding/en/98.txt
426
+ - data/geocoding/en/992.dat
427
+ - data/geocoding/en/992.txt
428
+ - data/geocoding/en/994.dat
429
+ - data/geocoding/en/994.txt
430
+ - data/geocoding/es/228.dat
431
+ - data/geocoding/es/228.txt
432
+ - data/geocoding/es/230.dat
433
+ - data/geocoding/es/230.txt
434
+ - data/geocoding/es/34.dat
435
+ - data/geocoding/es/34.txt
436
+ - data/geocoding/es/52.dat
437
+ - data/geocoding/es/52.txt
438
+ - data/geocoding/es/54.dat
439
+ - data/geocoding/es/54.txt
440
+ - data/geocoding/es/56.dat
441
+ - data/geocoding/es/56.txt
442
+ - data/geocoding/es/57.dat
443
+ - data/geocoding/es/57.txt
444
+ - data/geocoding/es/58.dat
445
+ - data/geocoding/es/58.txt
446
+ - data/geocoding/es/82.dat
447
+ - data/geocoding/es/82.txt
448
+ - data/geocoding/fa/93.dat
449
+ - data/geocoding/fa/93.txt
450
+ - data/geocoding/fa/98.dat
451
+ - data/geocoding/fa/98.txt
452
+ - data/geocoding/fi/358.dat
453
+ - data/geocoding/fi/358.txt
454
+ - data/geocoding/fi/82.dat
455
+ - data/geocoding/fi/82.txt
456
+ - data/geocoding/fr/212.dat
457
+ - data/geocoding/fr/212.txt
458
+ - data/geocoding/fr/222.dat
459
+ - data/geocoding/fr/222.txt
460
+ - data/geocoding/fr/225.dat
461
+ - data/geocoding/fr/225.txt
462
+ - data/geocoding/fr/228.dat
463
+ - data/geocoding/fr/228.txt
464
+ - data/geocoding/fr/229.dat
465
+ - data/geocoding/fr/229.txt
466
+ - data/geocoding/fr/230.dat
467
+ - data/geocoding/fr/230.txt
468
+ - data/geocoding/fr/242.dat
469
+ - data/geocoding/fr/242.txt
470
+ - data/geocoding/fr/243.dat
471
+ - data/geocoding/fr/243.txt
472
+ - data/geocoding/fr/269.dat
473
+ - data/geocoding/fr/269.txt
474
+ - data/geocoding/fr/290.dat
475
+ - data/geocoding/fr/290.txt
476
+ - data/geocoding/fr/32.dat
477
+ - data/geocoding/fr/32.txt
478
+ - data/geocoding/fr/33.dat
479
+ - data/geocoding/fr/33.txt
480
+ - data/geocoding/fr/352.dat
481
+ - data/geocoding/fr/352.txt
482
+ - data/geocoding/fr/41.dat
483
+ - data/geocoding/fr/41.txt
484
+ - data/geocoding/fr/82.dat
485
+ - data/geocoding/fr/82.txt
486
+ - data/geocoding/hi/82.dat
487
+ - data/geocoding/hi/82.txt
488
+ - data/geocoding/hu/36.dat
489
+ - data/geocoding/hu/36.txt
490
+ - data/geocoding/hu/82.dat
491
+ - data/geocoding/hu/82.txt
492
+ - data/geocoding/hy/374.dat
493
+ - data/geocoding/hy/374.txt
494
+ - data/geocoding/id/62.dat
495
+ - data/geocoding/id/62.txt
496
+ - data/geocoding/it/39.dat
497
+ - data/geocoding/it/39.txt
498
+ - data/geocoding/it/41.dat
499
+ - data/geocoding/it/41.txt
500
+ - data/geocoding/iw/82.dat
501
+ - data/geocoding/iw/82.txt
502
+ - data/geocoding/iw/972.dat
503
+ - data/geocoding/iw/972.txt
504
+ - data/geocoding/ja/81.dat
505
+ - data/geocoding/ja/81.txt
506
+ - data/geocoding/ja/82.dat
507
+ - data/geocoding/ja/82.txt
508
+ - data/geocoding/ko/82.dat
509
+ - data/geocoding/ko/82.txt
510
+ - data/geocoding/nl/31.dat
511
+ - data/geocoding/nl/31.txt
512
+ - data/geocoding/nl/32.dat
513
+ - data/geocoding/nl/32.txt
514
+ - data/geocoding/pl/48.dat
515
+ - data/geocoding/pl/48.txt
516
+ - data/geocoding/pl/82.dat
517
+ - data/geocoding/pl/82.txt
518
+ - data/geocoding/pt/238.dat
519
+ - data/geocoding/pt/238.txt
520
+ - data/geocoding/pt/239.dat
521
+ - data/geocoding/pt/239.txt
522
+ - data/geocoding/pt/244.dat
523
+ - data/geocoding/pt/244.txt
524
+ - data/geocoding/pt/245.dat
525
+ - data/geocoding/pt/245.txt
526
+ - data/geocoding/pt/258.dat
527
+ - data/geocoding/pt/258.txt
528
+ - data/geocoding/pt/351.dat
529
+ - data/geocoding/pt/351.txt
530
+ - data/geocoding/pt/55.dat
531
+ - data/geocoding/pt/55.txt
532
+ - data/geocoding/pt/82.dat
533
+ - data/geocoding/pt/82.txt
534
+ - data/geocoding/ro/373.dat
535
+ - data/geocoding/ro/373.txt
536
+ - data/geocoding/ro/40.dat
537
+ - data/geocoding/ro/40.txt
538
+ - data/geocoding/ro/82.dat
539
+ - data/geocoding/ro/82.txt
540
+ - data/geocoding/ru/373.dat
541
+ - data/geocoding/ru/373.txt
542
+ - data/geocoding/ru/374.dat
543
+ - data/geocoding/ru/374.txt
544
+ - data/geocoding/ru/375.dat
545
+ - data/geocoding/ru/375.txt
546
+ - data/geocoding/ru/7.dat
547
+ - data/geocoding/ru/7.txt
548
+ - data/geocoding/ru/82.dat
549
+ - data/geocoding/ru/82.txt
550
+ - data/geocoding/sl/82.dat
551
+ - data/geocoding/sl/82.txt
552
+ - data/geocoding/sr/381.dat
553
+ - data/geocoding/sr/381.txt
554
+ - data/geocoding/sr/82.dat
555
+ - data/geocoding/sr/82.txt
556
+ - data/geocoding/sv/358.dat
557
+ - data/geocoding/sv/358.txt
558
+ - data/geocoding/sv/46.dat
559
+ - data/geocoding/sv/46.txt
560
+ - data/geocoding/th/66.dat
561
+ - data/geocoding/th/66.txt
562
+ - data/geocoding/tr/82.dat
563
+ - data/geocoding/tr/82.txt
564
+ - data/geocoding/tr/90.dat
565
+ - data/geocoding/tr/90.txt
566
+ - data/geocoding/uk/82.dat
567
+ - data/geocoding/uk/82.txt
568
+ - data/geocoding/vi/82.dat
569
+ - data/geocoding/vi/82.txt
570
+ - data/geocoding/vi/84.dat
571
+ - data/geocoding/vi/84.txt
572
+ - data/geocoding/zh/82.dat
573
+ - data/geocoding/zh/82.txt
574
+ - data/geocoding/zh/86.dat
575
+ - data/geocoding/zh/86.txt
576
+ - data/geocoding/zh/886.dat
577
+ - data/geocoding/zh/886.txt
578
+ - data/geocoding/zh_Hant/82.dat
579
+ - data/geocoding/zh_Hant/82.txt
580
+ - data/geocoding/zh_Hant/886.dat
581
+ - data/geocoding/zh_Hant/886.txt
160
582
  - data/telephone_number_data_file.dat
161
583
  - data/telephone_number_data_file.xml
162
584
  - lib/active_model/telephone_number_validator.rb
585
+ - lib/importers/geo_location_data_importer.rb
586
+ - lib/importers/phone_data_importer.rb
587
+ - lib/importers/test_data_importer.rb
163
588
  - lib/telephone_number.rb
164
589
  - lib/telephone_number/class_methods.rb
165
590
  - lib/telephone_number/country.rb
166
- - lib/telephone_number/data_importer.rb
167
591
  - lib/telephone_number/formatter.rb
592
+ - lib/telephone_number/geo_locator.rb
168
593
  - lib/telephone_number/number.rb
169
594
  - lib/telephone_number/number_format.rb
170
595
  - lib/telephone_number/number_validation.rb
171
596
  - lib/telephone_number/parser.rb
172
- - lib/telephone_number/test_data_generator.rb
173
597
  - lib/telephone_number/version.rb
174
598
  - lib/utilities/hash.rb
175
599
  - telephone_number.gemspec