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.
- checksums.yaml +4 -4
- data/README.md +72 -49
- data/Rakefile +2 -2
- data/data/geocoding/ar/82.dat +0 -0
- data/data/geocoding/ar/82.txt +34 -0
- data/data/geocoding/ar/966.dat +0 -0
- data/data/geocoding/ar/966.txt +27 -0
- data/data/geocoding/be/375.dat +0 -0
- data/data/geocoding/be/375.txt +144 -0
- data/data/geocoding/bg/359.dat +0 -0
- data/data/geocoding/bg/359.txt +2105 -0
- data/data/geocoding/bg/82.dat +0 -0
- data/data/geocoding/bg/82.txt +34 -0
- data/data/geocoding/ca/82.dat +0 -0
- data/data/geocoding/ca/82.txt +34 -0
- data/data/geocoding/cs/82.dat +0 -0
- data/data/geocoding/cs/82.txt +35 -0
- data/data/geocoding/de/32.dat +0 -0
- data/data/geocoding/de/32.txt +59 -0
- data/data/geocoding/de/352.dat +0 -0
- data/data/geocoding/de/352.txt +229 -0
- data/data/geocoding/de/41.dat +0 -0
- data/data/geocoding/de/41.txt +37 -0
- data/data/geocoding/de/43.dat +0 -0
- data/data/geocoding/de/43.txt +1037 -0
- data/data/geocoding/de/49.dat +0 -0
- data/data/geocoding/de/49.txt +5219 -0
- data/data/geocoding/el/30.dat +0 -0
- data/data/geocoding/el/30.txt +259 -0
- data/data/geocoding/el/82.dat +0 -0
- data/data/geocoding/el/82.txt +28 -0
- data/data/geocoding/en/1.dat +0 -0
- data/data/geocoding/en/1.txt +36239 -0
- data/data/geocoding/en/20.dat +0 -0
- data/data/geocoding/en/20.txt +45 -0
- data/data/geocoding/en/212.dat +0 -0
- data/data/geocoding/en/212.txt +86 -0
- data/data/geocoding/en/213.dat +0 -0
- data/data/geocoding/en/213.txt +30 -0
- data/data/geocoding/en/216.dat +0 -0
- data/data/geocoding/en/216.txt +26 -0
- data/data/geocoding/en/218.dat +0 -0
- data/data/geocoding/en/218.txt +42 -0
- data/data/geocoding/en/220.dat +0 -0
- data/data/geocoding/en/220.txt +59 -0
- data/data/geocoding/en/221.dat +0 -0
- data/data/geocoding/en/221.txt +19 -0
- data/data/geocoding/en/222.dat +0 -0
- data/data/geocoding/en/222.txt +28 -0
- data/data/geocoding/en/223.dat +0 -0
- data/data/geocoding/en/223.txt +37 -0
- data/data/geocoding/en/224.dat +0 -0
- data/data/geocoding/en/224.txt +38 -0
- data/data/geocoding/en/225.dat +0 -0
- data/data/geocoding/en/225.txt +28 -0
- data/data/geocoding/en/226.dat +0 -0
- data/data/geocoding/en/226.txt +50 -0
- data/data/geocoding/en/227.dat +0 -0
- data/data/geocoding/en/227.txt +42 -0
- data/data/geocoding/en/228.dat +0 -0
- data/data/geocoding/en/228.txt +24 -0
- data/data/geocoding/en/229.dat +0 -0
- data/data/geocoding/en/229.txt +52 -0
- data/data/geocoding/en/230.dat +0 -0
- data/data/geocoding/en/230.txt +25 -0
- data/data/geocoding/en/232.dat +0 -0
- data/data/geocoding/en/232.txt +20 -0
- data/data/geocoding/en/233.dat +0 -0
- data/data/geocoding/en/233.txt +96 -0
- data/data/geocoding/en/234.dat +0 -0
- data/data/geocoding/en/234.txt +79 -0
- data/data/geocoding/en/237.dat +0 -0
- data/data/geocoding/en/237.txt +125 -0
- data/data/geocoding/en/238.dat +0 -0
- data/data/geocoding/en/238.txt +54 -0
- data/data/geocoding/en/239.dat +0 -0
- data/data/geocoding/en/239.txt +35 -0
- data/data/geocoding/en/240.dat +0 -0
- data/data/geocoding/en/240.txt +547 -0
- data/data/geocoding/en/241.dat +0 -0
- data/data/geocoding/en/241.txt +48 -0
- data/data/geocoding/en/242.dat +0 -0
- data/data/geocoding/en/242.txt +23 -0
- data/data/geocoding/en/243.dat +0 -0
- data/data/geocoding/en/243.txt +22 -0
- data/data/geocoding/en/244.dat +0 -0
- data/data/geocoding/en/244.txt +54 -0
- data/data/geocoding/en/245.dat +0 -0
- data/data/geocoding/en/245.txt +38 -0
- data/data/geocoding/en/247.dat +0 -0
- data/data/geocoding/en/247.txt +27 -0
- data/data/geocoding/en/249.dat +0 -0
- data/data/geocoding/en/249.txt +28 -0
- data/data/geocoding/en/251.dat +0 -0
- data/data/geocoding/en/251.txt +386 -0
- data/data/geocoding/en/252.dat +0 -0
- data/data/geocoding/en/252.txt +23 -0
- data/data/geocoding/en/254.dat +0 -0
- data/data/geocoding/en/254.txt +46 -0
- data/data/geocoding/en/255.dat +0 -0
- data/data/geocoding/en/255.txt +24 -0
- data/data/geocoding/en/256.dat +0 -0
- data/data/geocoding/en/256.txt +30 -0
- data/data/geocoding/en/257.dat +0 -0
- data/data/geocoding/en/257.txt +28 -0
- data/data/geocoding/en/258.dat +0 -0
- data/data/geocoding/en/258.txt +27 -0
- data/data/geocoding/en/260.dat +0 -0
- data/data/geocoding/en/260.txt +26 -0
- data/data/geocoding/en/261.dat +0 -0
- data/data/geocoding/en/261.txt +40 -0
- data/data/geocoding/en/263.dat +0 -0
- data/data/geocoding/en/263.txt +138 -0
- data/data/geocoding/en/264.dat +0 -0
- data/data/geocoding/en/264.txt +1047 -0
- data/data/geocoding/en/266.dat +0 -0
- data/data/geocoding/en/266.txt +18 -0
- data/data/geocoding/en/267.dat +0 -0
- data/data/geocoding/en/267.txt +35 -0
- data/data/geocoding/en/268.dat +0 -0
- data/data/geocoding/en/268.txt +58 -0
- data/data/geocoding/en/269.dat +0 -0
- data/data/geocoding/en/269.txt +32 -0
- data/data/geocoding/en/27.dat +0 -0
- data/data/geocoding/en/27.txt +56 -0
- data/data/geocoding/en/290.dat +0 -0
- data/data/geocoding/en/290.txt +24 -0
- data/data/geocoding/en/299.dat +0 -0
- data/data/geocoding/en/299.txt +43 -0
- data/data/geocoding/en/30.dat +0 -0
- data/data/geocoding/en/30.txt +261 -0
- data/data/geocoding/en/31.dat +0 -0
- data/data/geocoding/en/31.txt +137 -0
- data/data/geocoding/en/32.dat +0 -0
- data/data/geocoding/en/32.txt +59 -0
- data/data/geocoding/en/33.dat +0 -0
- data/data/geocoding/en/33.txt +5592 -0
- data/data/geocoding/en/34.dat +0 -0
- data/data/geocoding/en/34.txt +132 -0
- data/data/geocoding/en/351.dat +0 -0
- data/data/geocoding/en/351.txt +67 -0
- data/data/geocoding/en/352.dat +0 -0
- data/data/geocoding/en/352.txt +229 -0
- data/data/geocoding/en/353.dat +0 -0
- data/data/geocoding/en/353.txt +71 -0
- data/data/geocoding/en/354.dat +0 -0
- data/data/geocoding/en/354.txt +23 -0
- data/data/geocoding/en/355.dat +0 -0
- data/data/geocoding/en/355.txt +188 -0
- data/data/geocoding/en/358.dat +0 -0
- data/data/geocoding/en/358.txt +73 -0
- data/data/geocoding/en/359.dat +0 -0
- data/data/geocoding/en/359.txt +2102 -0
- data/data/geocoding/en/36.dat +0 -0
- data/data/geocoding/en/36.txt +70 -0
- data/data/geocoding/en/370.dat +0 -0
- data/data/geocoding/en/370.txt +64 -0
- data/data/geocoding/en/371.dat +0 -0
- data/data/geocoding/en/371.txt +56 -0
- data/data/geocoding/en/372.dat +0 -0
- data/data/geocoding/en/372.txt +35 -0
- data/data/geocoding/en/373.dat +0 -0
- data/data/geocoding/en/373.txt +62 -0
- data/data/geocoding/en/374.dat +0 -0
- data/data/geocoding/en/374.txt +522 -0
- data/data/geocoding/en/375.dat +0 -0
- data/data/geocoding/en/375.txt +142 -0
- data/data/geocoding/en/380.dat +0 -0
- data/data/geocoding/en/380.txt +44 -0
- data/data/geocoding/en/381.dat +0 -0
- data/data/geocoding/en/381.txt +50 -0
- data/data/geocoding/en/389.dat +0 -0
- data/data/geocoding/en/389.txt +28 -0
- data/data/geocoding/en/39.dat +0 -0
- data/data/geocoding/en/39.txt +137 -0
- data/data/geocoding/en/40.dat +0 -0
- data/data/geocoding/en/40.txt +98 -0
- data/data/geocoding/en/41.dat +0 -0
- data/data/geocoding/en/41.txt +37 -0
- data/data/geocoding/en/420.dat +0 -0
- data/data/geocoding/en/420.txt +37 -0
- data/data/geocoding/en/421.dat +0 -0
- data/data/geocoding/en/421.txt +42 -0
- data/data/geocoding/en/43.dat +0 -0
- data/data/geocoding/en/43.txt +1036 -0
- data/data/geocoding/en/44.dat +0 -0
- data/data/geocoding/en/44.txt +870 -0
- data/data/geocoding/en/46.dat +0 -0
- data/data/geocoding/en/46.txt +280 -0
- data/data/geocoding/en/47.dat +0 -0
- data/data/geocoding/en/47.txt +49 -0
- data/data/geocoding/en/48.dat +0 -0
- data/data/geocoding/en/48.txt +65 -0
- data/data/geocoding/en/49.dat +0 -0
- data/data/geocoding/en/49.txt +5218 -0
- data/data/geocoding/en/501.dat +0 -0
- data/data/geocoding/en/501.txt +23 -0
- data/data/geocoding/en/504.dat +0 -0
- data/data/geocoding/en/504.txt +23 -0
- data/data/geocoding/en/51.dat +0 -0
- data/data/geocoding/en/51.txt +42 -0
- data/data/geocoding/en/52.dat +0 -0
- data/data/geocoding/en/52.txt +417 -0
- data/data/geocoding/en/53.dat +0 -0
- data/data/geocoding/en/53.txt +33 -0
- data/data/geocoding/en/54.dat +0 -0
- data/data/geocoding/en/54.txt +236 -0
- data/data/geocoding/en/55.dat +0 -0
- data/data/geocoding/en/55.txt +15271 -0
- data/data/geocoding/en/56.dat +0 -0
- data/data/geocoding/en/56.txt +41 -0
- data/data/geocoding/en/57.dat +0 -0
- data/data/geocoding/en/57.txt +186 -0
- data/data/geocoding/en/58.dat +0 -0
- data/data/geocoding/en/58.txt +73 -0
- data/data/geocoding/en/592.dat +0 -0
- data/data/geocoding/en/592.txt +82 -0
- data/data/geocoding/en/599.dat +0 -0
- data/data/geocoding/en/599.txt +22 -0
- data/data/geocoding/en/62.dat +0 -0
- data/data/geocoding/en/62.txt +325 -0
- data/data/geocoding/en/64.dat +0 -0
- data/data/geocoding/en/64.txt +124 -0
- data/data/geocoding/en/66.dat +0 -0
- data/data/geocoding/en/66.txt +40 -0
- data/data/geocoding/en/675.dat +0 -0
- data/data/geocoding/en/675.txt +28 -0
- data/data/geocoding/en/686.dat +0 -0
- data/data/geocoding/en/686.txt +71 -0
- data/data/geocoding/en/688.dat +0 -0
- data/data/geocoding/en/688.txt +25 -0
- data/data/geocoding/en/7.dat +0 -0
- data/data/geocoding/en/7.txt +397 -0
- data/data/geocoding/en/81.dat +0 -0
- data/data/geocoding/en/81.txt +1547 -0
- data/data/geocoding/en/82.dat +0 -0
- data/data/geocoding/en/82.txt +35 -0
- data/data/geocoding/en/84.dat +0 -0
- data/data/geocoding/en/84.txt +91 -0
- data/data/geocoding/en/86.dat +0 -0
- data/data/geocoding/en/86.txt +154857 -0
- data/data/geocoding/en/886.dat +0 -0
- data/data/geocoding/en/886.txt +30 -0
- data/data/geocoding/en/90.dat +0 -0
- data/data/geocoding/en/90.txt +182 -0
- data/data/geocoding/en/91.dat +0 -0
- data/data/geocoding/en/91.txt +2672 -0
- data/data/geocoding/en/93.dat +0 -0
- data/data/geocoding/en/93.txt +52 -0
- data/data/geocoding/en/94.dat +0 -0
- data/data/geocoding/en/94.txt +46 -0
- data/data/geocoding/en/95.dat +0 -0
- data/data/geocoding/en/95.txt +88 -0
- data/data/geocoding/en/960.dat +0 -0
- data/data/geocoding/en/960.txt +64 -0
- data/data/geocoding/en/962.dat +0 -0
- data/data/geocoding/en/962.txt +32 -0
- data/data/geocoding/en/966.dat +0 -0
- data/data/geocoding/en/966.txt +29 -0
- data/data/geocoding/en/968.dat +0 -0
- data/data/geocoding/en/968.txt +18 -0
- data/data/geocoding/en/972.dat +0 -0
- data/data/geocoding/en/972.txt +19 -0
- data/data/geocoding/en/975.dat +0 -0
- data/data/geocoding/en/975.txt +21 -0
- data/data/geocoding/en/976.dat +0 -0
- data/data/geocoding/en/976.txt +693 -0
- data/data/geocoding/en/98.dat +0 -0
- data/data/geocoding/en/98.txt +51 -0
- data/data/geocoding/en/992.dat +0 -0
- data/data/geocoding/en/992.txt +77 -0
- data/data/geocoding/en/994.dat +0 -0
- data/data/geocoding/en/994.txt +98 -0
- data/data/geocoding/es/228.dat +0 -0
- data/data/geocoding/es/228.txt +23 -0
- data/data/geocoding/es/230.dat +0 -0
- data/data/geocoding/es/230.txt +23 -0
- data/data/geocoding/es/34.dat +0 -0
- data/data/geocoding/es/34.txt +133 -0
- data/data/geocoding/es/52.dat +0 -0
- data/data/geocoding/es/52.txt +417 -0
- data/data/geocoding/es/54.dat +0 -0
- data/data/geocoding/es/54.txt +238 -0
- data/data/geocoding/es/56.dat +0 -0
- data/data/geocoding/es/56.txt +46 -0
- data/data/geocoding/es/57.dat +0 -0
- data/data/geocoding/es/57.txt +186 -0
- data/data/geocoding/es/58.dat +0 -0
- data/data/geocoding/es/58.txt +72 -0
- data/data/geocoding/es/82.dat +0 -0
- data/data/geocoding/es/82.txt +33 -0
- data/data/geocoding/fa/93.dat +0 -0
- data/data/geocoding/fa/93.txt +53 -0
- data/data/geocoding/fa/98.dat +0 -0
- data/data/geocoding/fa/98.txt +48 -0
- data/data/geocoding/fi/358.dat +0 -0
- data/data/geocoding/fi/358.txt +73 -0
- data/data/geocoding/fi/82.dat +0 -0
- data/data/geocoding/fi/82.txt +34 -0
- data/data/geocoding/fr/212.dat +0 -0
- data/data/geocoding/fr/212.txt +85 -0
- data/data/geocoding/fr/222.dat +0 -0
- data/data/geocoding/fr/222.txt +29 -0
- data/data/geocoding/fr/225.dat +0 -0
- data/data/geocoding/fr/225.txt +30 -0
- data/data/geocoding/fr/228.dat +0 -0
- data/data/geocoding/fr/228.txt +24 -0
- data/data/geocoding/fr/229.dat +0 -0
- data/data/geocoding/fr/229.txt +55 -0
- data/data/geocoding/fr/230.dat +0 -0
- data/data/geocoding/fr/230.txt +23 -0
- data/data/geocoding/fr/242.dat +0 -0
- data/data/geocoding/fr/242.txt +25 -0
- data/data/geocoding/fr/243.dat +0 -0
- data/data/geocoding/fr/243.txt +24 -0
- data/data/geocoding/fr/269.dat +0 -0
- data/data/geocoding/fr/269.txt +34 -0
- data/data/geocoding/fr/290.dat +0 -0
- data/data/geocoding/fr/290.txt +24 -0
- data/data/geocoding/fr/32.dat +0 -0
- data/data/geocoding/fr/32.txt +59 -0
- data/data/geocoding/fr/33.dat +0 -0
- data/data/geocoding/fr/33.txt +5593 -0
- data/data/geocoding/fr/352.dat +0 -0
- data/data/geocoding/fr/352.txt +231 -0
- data/data/geocoding/fr/41.dat +0 -0
- data/data/geocoding/fr/41.txt +37 -0
- data/data/geocoding/fr/82.dat +0 -0
- data/data/geocoding/fr/82.txt +33 -0
- data/data/geocoding/hi/82.dat +0 -0
- data/data/geocoding/hi/82.txt +36 -0
- data/data/geocoding/hu/36.dat +0 -0
- data/data/geocoding/hu/36.txt +71 -0
- data/data/geocoding/hu/82.dat +0 -0
- data/data/geocoding/hu/82.txt +35 -0
- data/data/geocoding/hy/374.dat +0 -0
- data/data/geocoding/hy/374.txt +515 -0
- data/data/geocoding/id/62.dat +0 -0
- data/data/geocoding/id/62.txt +326 -0
- data/data/geocoding/it/39.dat +0 -0
- data/data/geocoding/it/39.txt +248 -0
- data/data/geocoding/it/41.dat +0 -0
- data/data/geocoding/it/41.txt +37 -0
- data/data/geocoding/iw/82.dat +0 -0
- data/data/geocoding/iw/82.txt +37 -0
- data/data/geocoding/iw/972.dat +0 -0
- data/data/geocoding/iw/972.txt +21 -0
- data/data/geocoding/ja/81.dat +0 -0
- data/data/geocoding/ja/81.txt +1546 -0
- data/data/geocoding/ja/82.dat +0 -0
- data/data/geocoding/ja/82.txt +35 -0
- data/data/geocoding/ko/82.dat +0 -0
- data/data/geocoding/ko/82.txt +35 -0
- data/data/geocoding/nl/31.dat +0 -0
- data/data/geocoding/nl/31.txt +145 -0
- data/data/geocoding/nl/32.dat +0 -0
- data/data/geocoding/nl/32.txt +59 -0
- data/data/geocoding/pl/48.dat +0 -0
- data/data/geocoding/pl/48.txt +66 -0
- data/data/geocoding/pl/82.dat +0 -0
- data/data/geocoding/pl/82.txt +33 -0
- data/data/geocoding/pt/238.dat +0 -0
- data/data/geocoding/pt/238.txt +58 -0
- data/data/geocoding/pt/239.dat +0 -0
- data/data/geocoding/pt/239.txt +37 -0
- data/data/geocoding/pt/244.dat +0 -0
- data/data/geocoding/pt/244.txt +59 -0
- data/data/geocoding/pt/245.dat +0 -0
- data/data/geocoding/pt/245.txt +37 -0
- data/data/geocoding/pt/258.dat +0 -0
- data/data/geocoding/pt/258.txt +29 -0
- data/data/geocoding/pt/351.dat +0 -0
- data/data/geocoding/pt/351.txt +69 -0
- data/data/geocoding/pt/55.dat +0 -0
- data/data/geocoding/pt/55.txt +15269 -0
- data/data/geocoding/pt/82.dat +0 -0
- data/data/geocoding/pt/82.txt +34 -0
- data/data/geocoding/ro/373.dat +0 -0
- data/data/geocoding/ro/373.txt +61 -0
- data/data/geocoding/ro/40.dat +0 -0
- data/data/geocoding/ro/40.txt +99 -0
- data/data/geocoding/ro/82.dat +0 -0
- data/data/geocoding/ro/82.txt +29 -0
- data/data/geocoding/ru/373.dat +0 -0
- data/data/geocoding/ru/373.txt +61 -0
- data/data/geocoding/ru/374.dat +0 -0
- data/data/geocoding/ru/374.txt +515 -0
- data/data/geocoding/ru/375.dat +0 -0
- data/data/geocoding/ru/375.txt +143 -0
- data/data/geocoding/ru/7.dat +0 -0
- data/data/geocoding/ru/7.txt +313 -0
- data/data/geocoding/ru/82.dat +0 -0
- data/data/geocoding/ru/82.txt +34 -0
- data/data/geocoding/sl/82.dat +0 -0
- data/data/geocoding/sl/82.txt +17 -0
- data/data/geocoding/sr/381.dat +0 -0
- data/data/geocoding/sr/381.txt +51 -0
- data/data/geocoding/sr/82.dat +0 -0
- data/data/geocoding/sr/82.txt +23 -0
- data/data/geocoding/sv/358.dat +0 -0
- data/data/geocoding/sv/358.txt +73 -0
- data/data/geocoding/sv/46.dat +0 -0
- data/data/geocoding/sv/46.txt +266 -0
- data/data/geocoding/th/66.dat +0 -0
- data/data/geocoding/th/66.txt +39 -0
- data/data/geocoding/tr/82.dat +0 -0
- data/data/geocoding/tr/82.txt +35 -0
- data/data/geocoding/tr/90.dat +0 -0
- data/data/geocoding/tr/90.txt +182 -0
- data/data/geocoding/uk/82.dat +0 -0
- data/data/geocoding/uk/82.txt +34 -0
- data/data/geocoding/vi/82.dat +0 -0
- data/data/geocoding/vi/82.txt +33 -0
- data/data/geocoding/vi/84.dat +0 -0
- data/data/geocoding/vi/84.txt +91 -0
- data/data/geocoding/zh/82.dat +0 -0
- data/data/geocoding/zh/82.txt +35 -0
- data/data/geocoding/zh/86.dat +0 -0
- data/data/geocoding/zh/86.txt +154857 -0
- data/data/geocoding/zh/886.dat +0 -0
- data/data/geocoding/zh/886.txt +30 -0
- data/data/geocoding/zh_Hant/82.dat +0 -0
- data/data/geocoding/zh_Hant/82.txt +35 -0
- data/data/geocoding/zh_Hant/886.dat +0 -0
- data/data/geocoding/zh_Hant/886.txt +30 -0
- data/lib/importers/geo_location_data_importer.rb +20 -0
- data/lib/{telephone_number/data_importer.rb → importers/phone_data_importer.rb} +1 -1
- data/lib/{telephone_number/test_data_generator.rb → importers/test_data_importer.rb} +3 -3
- data/lib/telephone_number.rb +12 -9
- data/lib/telephone_number/class_methods.rb +3 -12
- data/lib/telephone_number/country.rb +1 -1
- data/lib/telephone_number/geo_locator.rb +62 -0
- data/lib/telephone_number/number.rb +22 -4
- data/lib/telephone_number/version.rb +1 -1
- 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
|
@@ -3,7 +3,7 @@ module TelephoneNumber
|
|
3
3
|
require 'httparty'
|
4
4
|
require 'yaml'
|
5
5
|
|
6
|
-
class
|
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
|
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
|
110
|
+
"# Please edit TestDataImporter if you need to add test cases. \n"
|
111
111
|
|
112
112
|
file.write data.to_yaml
|
113
113
|
end
|
data/lib/telephone_number.rb
CHANGED
@@ -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 :
|
7
|
-
autoload :
|
8
|
-
autoload :
|
9
|
-
autoload :
|
10
|
-
autoload :
|
11
|
-
autoload :
|
12
|
-
autoload :
|
13
|
-
autoload :
|
14
|
-
autoload :
|
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 =
|
10
|
+
def parse(number, country = nil)
|
11
11
|
TelephoneNumber::Number.new(sanitize(number), country)
|
12
12
|
end
|
13
13
|
|
14
|
-
def valid?(number, country =
|
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
|
-
|
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
|
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.
|
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-
|
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
|