as_dialed_from 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (260) hide show
  1. data/.rvmrc +3 -0
  2. data/Gemfile +19 -0
  3. data/Guardfile +5 -0
  4. data/LICENSE +13 -0
  5. data/README.md +41 -0
  6. data/Rakefile +45 -0
  7. data/VERSION +1 -0
  8. data/as_dialed_from.gemspec +319 -0
  9. data/lib/as_dialed_from/metadata.rb +94 -0
  10. data/lib/as_dialed_from/number.rb +79 -0
  11. data/lib/as_dialed_from.rb +11 -0
  12. data/resources/PhoneNumberMetaData.xml +20321 -0
  13. data/resources/country_codes.yml +446 -0
  14. data/resources/territories/.gitkeep +0 -0
  15. data/resources/territories/AC.yml +4 -0
  16. data/resources/territories/AD.yml +4 -0
  17. data/resources/territories/AE.yml +5 -0
  18. data/resources/territories/AF.yml +5 -0
  19. data/resources/territories/AG.yml +5 -0
  20. data/resources/territories/AI.yml +5 -0
  21. data/resources/territories/AL.yml +5 -0
  22. data/resources/territories/AM.yml +5 -0
  23. data/resources/territories/AN.yml +4 -0
  24. data/resources/territories/AO.yml +4 -0
  25. data/resources/territories/AR.yml +5 -0
  26. data/resources/territories/AS.yml +5 -0
  27. data/resources/territories/AT.yml +5 -0
  28. data/resources/territories/AU.yml +5 -0
  29. data/resources/territories/AW.yml +4 -0
  30. data/resources/territories/AX.yml +5 -0
  31. data/resources/territories/AZ.yml +5 -0
  32. data/resources/territories/BA.yml +5 -0
  33. data/resources/territories/BB.yml +5 -0
  34. data/resources/territories/BD.yml +5 -0
  35. data/resources/territories/BE.yml +5 -0
  36. data/resources/territories/BF.yml +4 -0
  37. data/resources/territories/BG.yml +5 -0
  38. data/resources/territories/BH.yml +4 -0
  39. data/resources/territories/BI.yml +4 -0
  40. data/resources/territories/BJ.yml +4 -0
  41. data/resources/territories/BL.yml +5 -0
  42. data/resources/territories/BM.yml +5 -0
  43. data/resources/territories/BN.yml +5 -0
  44. data/resources/territories/BO.yml +5 -0
  45. data/resources/territories/BR.yml +5 -0
  46. data/resources/territories/BS.yml +5 -0
  47. data/resources/territories/BT.yml +4 -0
  48. data/resources/territories/BW.yml +4 -0
  49. data/resources/territories/BY.yml +5 -0
  50. data/resources/territories/BZ.yml +5 -0
  51. data/resources/territories/CA.yml +5 -0
  52. data/resources/territories/CC.yml +5 -0
  53. data/resources/territories/CD.yml +5 -0
  54. data/resources/territories/CF.yml +4 -0
  55. data/resources/territories/CG.yml +5 -0
  56. data/resources/territories/CH.yml +5 -0
  57. data/resources/territories/CI.yml +5 -0
  58. data/resources/territories/CK.yml +4 -0
  59. data/resources/territories/CL.yml +5 -0
  60. data/resources/territories/CM.yml +4 -0
  61. data/resources/territories/CN.yml +5 -0
  62. data/resources/territories/CO.yml +5 -0
  63. data/resources/territories/CR.yml +4 -0
  64. data/resources/territories/CU.yml +5 -0
  65. data/resources/territories/CV.yml +4 -0
  66. data/resources/territories/CX.yml +5 -0
  67. data/resources/territories/CY.yml +4 -0
  68. data/resources/territories/CZ.yml +4 -0
  69. data/resources/territories/DE.yml +5 -0
  70. data/resources/territories/DJ.yml +4 -0
  71. data/resources/territories/DK.yml +4 -0
  72. data/resources/territories/DM.yml +5 -0
  73. data/resources/territories/DO.yml +5 -0
  74. data/resources/territories/DZ.yml +5 -0
  75. data/resources/territories/EC.yml +5 -0
  76. data/resources/territories/EE.yml +4 -0
  77. data/resources/territories/EG.yml +5 -0
  78. data/resources/territories/ER.yml +5 -0
  79. data/resources/territories/ES.yml +4 -0
  80. data/resources/territories/ET.yml +5 -0
  81. data/resources/territories/FI.yml +5 -0
  82. data/resources/territories/FJ.yml +5 -0
  83. data/resources/territories/FK.yml +4 -0
  84. data/resources/territories/FM.yml +4 -0
  85. data/resources/territories/FO.yml +4 -0
  86. data/resources/territories/FR.yml +5 -0
  87. data/resources/territories/GA.yml +5 -0
  88. data/resources/territories/GB.yml +5 -0
  89. data/resources/territories/GD.yml +5 -0
  90. data/resources/territories/GE.yml +5 -0
  91. data/resources/territories/GF.yml +5 -0
  92. data/resources/territories/GG.yml +5 -0
  93. data/resources/territories/GH.yml +5 -0
  94. data/resources/territories/GI.yml +4 -0
  95. data/resources/territories/GL.yml +4 -0
  96. data/resources/territories/GM.yml +4 -0
  97. data/resources/territories/GN.yml +4 -0
  98. data/resources/territories/GP.yml +5 -0
  99. data/resources/territories/GQ.yml +4 -0
  100. data/resources/territories/GR.yml +4 -0
  101. data/resources/territories/GT.yml +4 -0
  102. data/resources/territories/GU.yml +5 -0
  103. data/resources/territories/GW.yml +4 -0
  104. data/resources/territories/GY.yml +4 -0
  105. data/resources/territories/HK.yml +4 -0
  106. data/resources/territories/HN.yml +4 -0
  107. data/resources/territories/HR.yml +5 -0
  108. data/resources/territories/HT.yml +4 -0
  109. data/resources/territories/HU.yml +5 -0
  110. data/resources/territories/ID.yml +5 -0
  111. data/resources/territories/IE.yml +5 -0
  112. data/resources/territories/IL.yml +5 -0
  113. data/resources/territories/IM.yml +5 -0
  114. data/resources/territories/IN.yml +5 -0
  115. data/resources/territories/IO.yml +4 -0
  116. data/resources/territories/IQ.yml +5 -0
  117. data/resources/territories/IR.yml +5 -0
  118. data/resources/territories/IS.yml +4 -0
  119. data/resources/territories/IT.yml +5 -0
  120. data/resources/territories/JE.yml +5 -0
  121. data/resources/territories/JM.yml +5 -0
  122. data/resources/territories/JO.yml +5 -0
  123. data/resources/territories/JP.yml +5 -0
  124. data/resources/territories/KE.yml +5 -0
  125. data/resources/territories/KG.yml +5 -0
  126. data/resources/territories/KH.yml +5 -0
  127. data/resources/territories/KI.yml +5 -0
  128. data/resources/territories/KM.yml +4 -0
  129. data/resources/territories/KN.yml +5 -0
  130. data/resources/territories/KP.yml +5 -0
  131. data/resources/territories/KR.yml +5 -0
  132. data/resources/territories/KW.yml +4 -0
  133. data/resources/territories/KY.yml +5 -0
  134. data/resources/territories/KZ.yml +5 -0
  135. data/resources/territories/LA.yml +5 -0
  136. data/resources/territories/LB.yml +5 -0
  137. data/resources/territories/LC.yml +5 -0
  138. data/resources/territories/LI.yml +4 -0
  139. data/resources/territories/LK.yml +5 -0
  140. data/resources/territories/LR.yml +5 -0
  141. data/resources/territories/LS.yml +4 -0
  142. data/resources/territories/LT.yml +5 -0
  143. data/resources/territories/LU.yml +4 -0
  144. data/resources/territories/LV.yml +4 -0
  145. data/resources/territories/LY.yml +5 -0
  146. data/resources/territories/MA.yml +5 -0
  147. data/resources/territories/MC.yml +5 -0
  148. data/resources/territories/MD.yml +5 -0
  149. data/resources/territories/ME.yml +5 -0
  150. data/resources/territories/MF.yml +5 -0
  151. data/resources/territories/MG.yml +5 -0
  152. data/resources/territories/MH.yml +4 -0
  153. data/resources/territories/MK.yml +5 -0
  154. data/resources/territories/ML.yml +5 -0
  155. data/resources/territories/MM.yml +4 -0
  156. data/resources/territories/MN.yml +5 -0
  157. data/resources/territories/MO.yml +4 -0
  158. data/resources/territories/MP.yml +5 -0
  159. data/resources/territories/MQ.yml +5 -0
  160. data/resources/territories/MR.yml +4 -0
  161. data/resources/territories/MS.yml +5 -0
  162. data/resources/territories/MT.yml +4 -0
  163. data/resources/territories/MU.yml +4 -0
  164. data/resources/territories/MV.yml +4 -0
  165. data/resources/territories/MW.yml +5 -0
  166. data/resources/territories/MX.yml +5 -0
  167. data/resources/territories/MY.yml +5 -0
  168. data/resources/territories/MZ.yml +4 -0
  169. data/resources/territories/NA.yml +5 -0
  170. data/resources/territories/NC.yml +4 -0
  171. data/resources/territories/NE.yml +5 -0
  172. data/resources/territories/NF.yml +4 -0
  173. data/resources/territories/NG.yml +5 -0
  174. data/resources/territories/NI.yml +4 -0
  175. data/resources/territories/NL.yml +5 -0
  176. data/resources/territories/NO.yml +5 -0
  177. data/resources/territories/NP.yml +5 -0
  178. data/resources/territories/NR.yml +4 -0
  179. data/resources/territories/NU.yml +4 -0
  180. data/resources/territories/NZ.yml +5 -0
  181. data/resources/territories/OM.yml +4 -0
  182. data/resources/territories/PA.yml +5 -0
  183. data/resources/territories/PE.yml +5 -0
  184. data/resources/territories/PF.yml +4 -0
  185. data/resources/territories/PG.yml +4 -0
  186. data/resources/territories/PH.yml +5 -0
  187. data/resources/territories/PK.yml +5 -0
  188. data/resources/territories/PL.yml +4 -0
  189. data/resources/territories/PM.yml +4 -0
  190. data/resources/territories/PR.yml +5 -0
  191. data/resources/territories/PS.yml +5 -0
  192. data/resources/territories/PT.yml +4 -0
  193. data/resources/territories/PW.yml +4 -0
  194. data/resources/territories/PY.yml +5 -0
  195. data/resources/territories/QA.yml +4 -0
  196. data/resources/territories/RE.yml +5 -0
  197. data/resources/territories/RO.yml +5 -0
  198. data/resources/territories/RS.yml +5 -0
  199. data/resources/territories/RU.yml +5 -0
  200. data/resources/territories/RW.yml +5 -0
  201. data/resources/territories/SA.yml +5 -0
  202. data/resources/territories/SB.yml +4 -0
  203. data/resources/territories/SC.yml +4 -0
  204. data/resources/territories/SD.yml +5 -0
  205. data/resources/territories/SE.yml +5 -0
  206. data/resources/territories/SG.yml +4 -0
  207. data/resources/territories/SH.yml +4 -0
  208. data/resources/territories/SI.yml +5 -0
  209. data/resources/territories/SJ.yml +5 -0
  210. data/resources/territories/SK.yml +5 -0
  211. data/resources/territories/SL.yml +5 -0
  212. data/resources/territories/SM.yml +5 -0
  213. data/resources/territories/SN.yml +4 -0
  214. data/resources/territories/SO.yml +4 -0
  215. data/resources/territories/SR.yml +4 -0
  216. data/resources/territories/ST.yml +4 -0
  217. data/resources/territories/SV.yml +4 -0
  218. data/resources/territories/SY.yml +5 -0
  219. data/resources/territories/SZ.yml +5 -0
  220. data/resources/territories/TC.yml +5 -0
  221. data/resources/territories/TD.yml +4 -0
  222. data/resources/territories/TF.yml +4 -0
  223. data/resources/territories/TG.yml +5 -0
  224. data/resources/territories/TH.yml +5 -0
  225. data/resources/territories/TJ.yml +5 -0
  226. data/resources/territories/TK.yml +3 -0
  227. data/resources/territories/TL.yml +4 -0
  228. data/resources/territories/TM.yml +5 -0
  229. data/resources/territories/TN.yml +4 -0
  230. data/resources/territories/TO.yml +5 -0
  231. data/resources/territories/TR.yml +5 -0
  232. data/resources/territories/TT.yml +5 -0
  233. data/resources/territories/TV.yml +4 -0
  234. data/resources/territories/TW.yml +5 -0
  235. data/resources/territories/TZ.yml +5 -0
  236. data/resources/territories/UA.yml +5 -0
  237. data/resources/territories/UG.yml +5 -0
  238. data/resources/territories/US.yml +5 -0
  239. data/resources/territories/UY.yml +5 -0
  240. data/resources/territories/UZ.yml +5 -0
  241. data/resources/territories/VA.yml +5 -0
  242. data/resources/territories/VC.yml +5 -0
  243. data/resources/territories/VE.yml +5 -0
  244. data/resources/territories/VG.yml +5 -0
  245. data/resources/territories/VI.yml +5 -0
  246. data/resources/territories/VN.yml +5 -0
  247. data/resources/territories/VU.yml +4 -0
  248. data/resources/territories/WF.yml +4 -0
  249. data/resources/territories/WS.yml +5 -0
  250. data/resources/territories/YE.yml +5 -0
  251. data/resources/territories/YT.yml +5 -0
  252. data/resources/territories/ZA.yml +5 -0
  253. data/resources/territories/ZM.yml +5 -0
  254. data/resources/territories/ZW.yml +5 -0
  255. data/tasks/as_dialed_from.rake +20 -0
  256. data/test/as_dialed_from/metadata_test.rb +26 -0
  257. data/test/as_dialed_from/number_test.rb +78 -0
  258. data/test/as_dialed_from_test.rb +11 -0
  259. data/test/test_helper.rb +1 -0
  260. metadata +405 -0
@@ -0,0 +1,5 @@
1
+ ---
2
+ :country_code: "1"
3
+ :international_prefix: "011"
4
+ :national_prefix: "1"
5
+ :national_number_pattern: "[2-9]\\d{9}"
@@ -0,0 +1,5 @@
1
+ ---
2
+ :country_code: "598"
3
+ :international_prefix: 0(?:1[3-9]\d|0)
4
+ :national_prefix: "0"
5
+ :national_number_pattern: "[2489]\\d{6,7}"
@@ -0,0 +1,5 @@
1
+ ---
2
+ :country_code: "998"
3
+ :international_prefix: 8~10
4
+ :national_prefix: "8"
5
+ :national_number_pattern: "[679]\\d{8}"
@@ -0,0 +1,5 @@
1
+ ---
2
+ :country_code: "379"
3
+ :international_prefix: "00"
4
+ :leading_zero_possible: "true"
5
+ :national_number_pattern: 06\d{8}
@@ -0,0 +1,5 @@
1
+ ---
2
+ :country_code: "1"
3
+ :international_prefix: "011"
4
+ :national_prefix: "1"
5
+ :national_number_pattern: "[5789]\\d{9}"
@@ -0,0 +1,5 @@
1
+ ---
2
+ :country_code: "58"
3
+ :international_prefix: "00"
4
+ :national_prefix: "0"
5
+ :national_number_pattern: "[24589]\\d{9}"
@@ -0,0 +1,5 @@
1
+ ---
2
+ :country_code: "1"
3
+ :international_prefix: "011"
4
+ :national_prefix: "1"
5
+ :national_number_pattern: "[2589]\\d{9}"
@@ -0,0 +1,5 @@
1
+ ---
2
+ :country_code: "1"
3
+ :international_prefix: "011"
4
+ :national_prefix: "1"
5
+ :national_number_pattern: "[3589]\\d{9}"
@@ -0,0 +1,5 @@
1
+ ---
2
+ :country_code: "84"
3
+ :international_prefix: "00"
4
+ :national_prefix: "0"
5
+ :national_number_pattern: "\n 8\\d{5,8}|\n [1-79]\\d{7,9}\n "
@@ -0,0 +1,4 @@
1
+ ---
2
+ :country_code: "678"
3
+ :international_prefix: "00"
4
+ :national_number_pattern: "[2-57-9]\\d{4,6}"
@@ -0,0 +1,4 @@
1
+ ---
2
+ :country_code: "681"
3
+ :international_prefix: "00"
4
+ :national_number_pattern: "[5-7]\\d{5}"
@@ -0,0 +1,5 @@
1
+ ---
2
+ :country_code: "685"
3
+ :international_prefix: "0"
4
+ :national_prefix: "0"
5
+ :national_number_pattern: "[2-8]\\d{4,6}"
@@ -0,0 +1,5 @@
1
+ ---
2
+ :country_code: "967"
3
+ :international_prefix: "00"
4
+ :national_prefix: "0"
5
+ :national_number_pattern: "[1-7]\\d{6,8}"
@@ -0,0 +1,5 @@
1
+ ---
2
+ :country_code: "262"
3
+ :international_prefix: "00"
4
+ :national_prefix: "0"
5
+ :national_number_pattern: "[268]\\d{8}"
@@ -0,0 +1,5 @@
1
+ ---
2
+ :country_code: "27"
3
+ :international_prefix: "00"
4
+ :national_prefix: "0"
5
+ :national_number_pattern: \d{9}
@@ -0,0 +1,5 @@
1
+ ---
2
+ :country_code: "260"
3
+ :international_prefix: "00"
4
+ :national_prefix: "0"
5
+ :national_number_pattern: "[289]\\d{8}"
@@ -0,0 +1,5 @@
1
+ ---
2
+ :country_code: "263"
3
+ :international_prefix: "00"
4
+ :national_prefix: "0"
5
+ :national_number_pattern: "\n 2(?:\n [012457-9]\\d{3,8}|\n 6\\d{3,6}\n )|\n [13-79]\\d{4,8}|\n 86\\d{8}\n "
@@ -0,0 +1,20 @@
1
+ require 'rake'
2
+ require File.dirname(__FILE__) + '/../lib/as_dialed_from.rb'
3
+
4
+ desc "Downloads and parses country metadata from Google's libphonenumber project"
5
+ task :update do
6
+ AsDialedFrom::Metadata.download
7
+ AsDialedFrom::Metadata.parse
8
+ end
9
+
10
+ namespace :update do
11
+ desc "Downloads XML file from Google"
12
+ task :download do
13
+ AsDialedFrom::Metadata.download
14
+ end
15
+
16
+ desc "Parses XML into YAML files"
17
+ task :parse do
18
+ AsDialedFrom::Metadata.parse
19
+ end
20
+ end
@@ -0,0 +1,26 @@
1
+ # encoding: UTF-8
2
+
3
+ require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
4
+
5
+ class MetadataTest < Test::Unit::TestCase
6
+
7
+ test "load US metadata" do
8
+ metadata = AsDialedFrom::Metadata.for_region "US"
9
+ assert_equal "1", metadata[:country_code]
10
+ assert_equal "011", metadata[:international_prefix]
11
+ assert_equal "1", metadata[:national_prefix]
12
+ end
13
+
14
+ test "load MX metadata" do
15
+ metadata = AsDialedFrom::Metadata.for_region "MX"
16
+ assert_equal "52", metadata[:country_code]
17
+ assert_equal "0[09]", metadata[:international_prefix]
18
+ assert_equal "01", metadata[:national_prefix]
19
+ end
20
+
21
+ test "under_score camelCased words" do
22
+ assert_equal "one_two_three", AsDialedFrom::Metadata.underscore("oneTwoThree")
23
+ assert_equal "one_two_three", AsDialedFrom::Metadata.underscore("OneTwoThree")
24
+ end
25
+
26
+ end
@@ -0,0 +1,78 @@
1
+ # encoding: UTF-8
2
+
3
+ require File.expand_path(File.dirname(__FILE__) + "/../test_helper")
4
+
5
+ class Number < Test::Unit::TestCase
6
+
7
+ ALPHA_NUMERIC_NUMBER = "+180074935247"
8
+ AR_MOBILE = "+5491187654321"
9
+ AR_NUMBER = "+541187654321"
10
+ AU_NUMBER = "+61236618300"
11
+ BS_MOBILE = "+12423570000"
12
+ BS_NUMBER = "+12423651234"
13
+ DE_NUMBER = "+4930123456"
14
+ DE_SHORT_NUMBER = "+491234"
15
+ GB_MOBILE = "+447912345678"
16
+ GB_NUMBER = "+442070313000"
17
+ IT_MOBILE = "+39345678901"
18
+ IT_NUMBER = "+39236618300"
19
+ MX_MOBILE1 = "+5212345678900"
20
+ MX_MOBILE2 = "+5215512345678"
21
+ MX_NUMBER1 = "+523312345678"
22
+ MX_NUMBER2 = "+528211234567"
23
+ NZ_NUMBER = "+6433316005"
24
+ SG_NUMBER = "+6565218000"
25
+ US_LONG_NUMBER = "+165025300001"
26
+ US_NUMBER = "+16502530000"
27
+ US_PREMIUM = "+19002530000"
28
+ US_LOCAL_NUMBER = "+12530000"
29
+ US_SHORT_BY_ONE_NUMBER = "+1650253000"
30
+ US_TOLLFREE = "+18002530000"
31
+
32
+ test "should require an argument" do
33
+ assert_raise(ArgumentError) { AsDialedFrom::Number.new }
34
+ end
35
+
36
+ test "should instantiate with a valid phone number" do
37
+ assert AsDialedFrom::Number.new US_NUMBER
38
+ end
39
+
40
+ test "should raise an error when no + is passed" do
41
+ assert_raise(RuntimeError) { AsDialedFrom::Number.new "12155551212" }
42
+ end
43
+
44
+ test "should determine country code from string" do
45
+ assert_equal "1", AsDialedFrom::Number.new(US_NUMBER ).country_code
46
+ assert_equal "52", AsDialedFrom::Number.new(MX_NUMBER1).country_code
47
+ assert_equal "39", AsDialedFrom::Number.new(IT_NUMBER ).country_code
48
+ end
49
+
50
+ test "should raise an error if no valid country code was found" do
51
+ assert_raise(RuntimeError) { AsDialedFrom::Number.new "+9991234567890" }
52
+ end
53
+
54
+ test "should return national number" do
55
+ assert_equal "6502530000", AsDialedFrom::Number.new(US_NUMBER).national_number
56
+ end
57
+
58
+ test "should return a number to dial using as_dialed_from" do
59
+ assert_equal "16502530000", AsDialedFrom::Number.new(US_NUMBER).as_dialed_from("US")
60
+
61
+ assert_equal "0016502530000", AsDialedFrom::Number.new(US_NUMBER).as_dialed_from("MX")
62
+ assert_equal "011523312345678", AsDialedFrom::Number.new(MX_NUMBER1).as_dialed_from("US")
63
+
64
+ assert_equal "0019002530000", AsDialedFrom::Number.new(US_PREMIUM).as_dialed_from("DE")
65
+ # assert_equal "16502530000", AsDialedFrom::Number.new(US_NUMBER).as_dialed_from("BS")
66
+ # assert_equal "0~016502530000", AsDialedFrom::Number.new(US_NUMBER).as_dialed_from("PL")
67
+ assert_equal "011447912345678", AsDialedFrom::Number.new(GB_MOBILE).as_dialed_from("US")
68
+ assert_equal "00491234", AsDialedFrom::Number.new(DE_SHORT_NUMBER).as_dialed_from("GB")
69
+
70
+ # assert_equal "1234", AsDialedFrom::Number.new(DE_SHORT_NUMBER).as_dialed_from("DE")
71
+ assert_equal "011390236618300", AsDialedFrom::Number.new(IT_NUMBER).as_dialed_from("US")
72
+ assert_equal "0236618300", AsDialedFrom::Number.new(IT_NUMBER).as_dialed_from("IT")
73
+ assert_equal "390236618300", AsDialedFrom::Number.new(IT_NUMBER).as_dialed_from("SG")
74
+ assert_equal "65218000", AsDialedFrom::Number.new(SG_NUMBER).as_dialed_from("SG")
75
+ assert_equal "0115491187654321", AsDialedFrom::Number.new(AR_MOBILE).as_dialed_from("US")
76
+ end
77
+
78
+ end
@@ -0,0 +1,11 @@
1
+ # encoding: UTF-8
2
+
3
+ require File.expand_path(File.dirname(__FILE__) + "/test_helper")
4
+
5
+ class AsDialedFromTest < Test::Unit::TestCase
6
+
7
+ test "prototype string with as_dialed_from method" do
8
+ assert_equal "12155551212", "+12155551212".as_dialed_from("US")
9
+ end
10
+
11
+ end
@@ -0,0 +1 @@
1
+ require File.dirname(__FILE__) + '/../lib/as_dialed_from.rb'
metadata ADDED
@@ -0,0 +1,405 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: as_dialed_from
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.1.1
6
+ platform: ruby
7
+ authors:
8
+ - Justin Campbell
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2011-07-20 00:00:00 -04:00
14
+ default_executable:
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: rb-fsevent
18
+ requirement: &id001 !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ type: :runtime
25
+ prerelease: false
26
+ version_requirements: *id001
27
+ - !ruby/object:Gem::Dependency
28
+ name: growl
29
+ requirement: &id002 !ruby/object:Gem::Requirement
30
+ none: false
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: "0"
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: *id002
38
+ - !ruby/object:Gem::Dependency
39
+ name: xml-simple
40
+ requirement: &id003 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: "0"
46
+ type: :development
47
+ prerelease: false
48
+ version_requirements: *id003
49
+ - !ruby/object:Gem::Dependency
50
+ name: test-unit
51
+ requirement: &id004 !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: "0"
57
+ type: :development
58
+ prerelease: false
59
+ version_requirements: *id004
60
+ - !ruby/object:Gem::Dependency
61
+ name: guard-test
62
+ requirement: &id005 !ruby/object:Gem::Requirement
63
+ none: false
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: "0"
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: *id005
71
+ - !ruby/object:Gem::Dependency
72
+ name: rcov
73
+ requirement: &id006 !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: "0"
79
+ type: :development
80
+ prerelease: false
81
+ version_requirements: *id006
82
+ - !ruby/object:Gem::Dependency
83
+ name: bundler
84
+ requirement: &id007 !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: "0"
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: *id007
93
+ - !ruby/object:Gem::Dependency
94
+ name: jeweler
95
+ requirement: &id008 !ruby/object:Gem::Requirement
96
+ none: false
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: "0"
101
+ type: :development
102
+ prerelease: false
103
+ version_requirements: *id008
104
+ description: Figure out how a number should be dialed from another country. A fork of a port of Google's libphonenumber.
105
+ email: jcampbell@movitas.com
106
+ executables: []
107
+
108
+ extensions: []
109
+
110
+ extra_rdoc_files:
111
+ - LICENSE
112
+ - README.md
113
+ files:
114
+ - .rvmrc
115
+ - Gemfile
116
+ - Guardfile
117
+ - LICENSE
118
+ - README.md
119
+ - Rakefile
120
+ - VERSION
121
+ - as_dialed_from.gemspec
122
+ - lib/as_dialed_from.rb
123
+ - lib/as_dialed_from/metadata.rb
124
+ - lib/as_dialed_from/number.rb
125
+ - resources/PhoneNumberMetaData.xml
126
+ - resources/country_codes.yml
127
+ - resources/territories/.gitkeep
128
+ - resources/territories/AC.yml
129
+ - resources/territories/AD.yml
130
+ - resources/territories/AE.yml
131
+ - resources/territories/AF.yml
132
+ - resources/territories/AG.yml
133
+ - resources/territories/AI.yml
134
+ - resources/territories/AL.yml
135
+ - resources/territories/AM.yml
136
+ - resources/territories/AN.yml
137
+ - resources/territories/AO.yml
138
+ - resources/territories/AR.yml
139
+ - resources/territories/AS.yml
140
+ - resources/territories/AT.yml
141
+ - resources/territories/AU.yml
142
+ - resources/territories/AW.yml
143
+ - resources/territories/AX.yml
144
+ - resources/territories/AZ.yml
145
+ - resources/territories/BA.yml
146
+ - resources/territories/BB.yml
147
+ - resources/territories/BD.yml
148
+ - resources/territories/BE.yml
149
+ - resources/territories/BF.yml
150
+ - resources/territories/BG.yml
151
+ - resources/territories/BH.yml
152
+ - resources/territories/BI.yml
153
+ - resources/territories/BJ.yml
154
+ - resources/territories/BL.yml
155
+ - resources/territories/BM.yml
156
+ - resources/territories/BN.yml
157
+ - resources/territories/BO.yml
158
+ - resources/territories/BR.yml
159
+ - resources/territories/BS.yml
160
+ - resources/territories/BT.yml
161
+ - resources/territories/BW.yml
162
+ - resources/territories/BY.yml
163
+ - resources/territories/BZ.yml
164
+ - resources/territories/CA.yml
165
+ - resources/territories/CC.yml
166
+ - resources/territories/CD.yml
167
+ - resources/territories/CF.yml
168
+ - resources/territories/CG.yml
169
+ - resources/territories/CH.yml
170
+ - resources/territories/CI.yml
171
+ - resources/territories/CK.yml
172
+ - resources/territories/CL.yml
173
+ - resources/territories/CM.yml
174
+ - resources/territories/CN.yml
175
+ - resources/territories/CO.yml
176
+ - resources/territories/CR.yml
177
+ - resources/territories/CU.yml
178
+ - resources/territories/CV.yml
179
+ - resources/territories/CX.yml
180
+ - resources/territories/CY.yml
181
+ - resources/territories/CZ.yml
182
+ - resources/territories/DE.yml
183
+ - resources/territories/DJ.yml
184
+ - resources/territories/DK.yml
185
+ - resources/territories/DM.yml
186
+ - resources/territories/DO.yml
187
+ - resources/territories/DZ.yml
188
+ - resources/territories/EC.yml
189
+ - resources/territories/EE.yml
190
+ - resources/territories/EG.yml
191
+ - resources/territories/ER.yml
192
+ - resources/territories/ES.yml
193
+ - resources/territories/ET.yml
194
+ - resources/territories/FI.yml
195
+ - resources/territories/FJ.yml
196
+ - resources/territories/FK.yml
197
+ - resources/territories/FM.yml
198
+ - resources/territories/FO.yml
199
+ - resources/territories/FR.yml
200
+ - resources/territories/GA.yml
201
+ - resources/territories/GB.yml
202
+ - resources/territories/GD.yml
203
+ - resources/territories/GE.yml
204
+ - resources/territories/GF.yml
205
+ - resources/territories/GG.yml
206
+ - resources/territories/GH.yml
207
+ - resources/territories/GI.yml
208
+ - resources/territories/GL.yml
209
+ - resources/territories/GM.yml
210
+ - resources/territories/GN.yml
211
+ - resources/territories/GP.yml
212
+ - resources/territories/GQ.yml
213
+ - resources/territories/GR.yml
214
+ - resources/territories/GT.yml
215
+ - resources/territories/GU.yml
216
+ - resources/territories/GW.yml
217
+ - resources/territories/GY.yml
218
+ - resources/territories/HK.yml
219
+ - resources/territories/HN.yml
220
+ - resources/territories/HR.yml
221
+ - resources/territories/HT.yml
222
+ - resources/territories/HU.yml
223
+ - resources/territories/ID.yml
224
+ - resources/territories/IE.yml
225
+ - resources/territories/IL.yml
226
+ - resources/territories/IM.yml
227
+ - resources/territories/IN.yml
228
+ - resources/territories/IO.yml
229
+ - resources/territories/IQ.yml
230
+ - resources/territories/IR.yml
231
+ - resources/territories/IS.yml
232
+ - resources/territories/IT.yml
233
+ - resources/territories/JE.yml
234
+ - resources/territories/JM.yml
235
+ - resources/territories/JO.yml
236
+ - resources/territories/JP.yml
237
+ - resources/territories/KE.yml
238
+ - resources/territories/KG.yml
239
+ - resources/territories/KH.yml
240
+ - resources/territories/KI.yml
241
+ - resources/territories/KM.yml
242
+ - resources/territories/KN.yml
243
+ - resources/territories/KP.yml
244
+ - resources/territories/KR.yml
245
+ - resources/territories/KW.yml
246
+ - resources/territories/KY.yml
247
+ - resources/territories/KZ.yml
248
+ - resources/territories/LA.yml
249
+ - resources/territories/LB.yml
250
+ - resources/territories/LC.yml
251
+ - resources/territories/LI.yml
252
+ - resources/territories/LK.yml
253
+ - resources/territories/LR.yml
254
+ - resources/territories/LS.yml
255
+ - resources/territories/LT.yml
256
+ - resources/territories/LU.yml
257
+ - resources/territories/LV.yml
258
+ - resources/territories/LY.yml
259
+ - resources/territories/MA.yml
260
+ - resources/territories/MC.yml
261
+ - resources/territories/MD.yml
262
+ - resources/territories/ME.yml
263
+ - resources/territories/MF.yml
264
+ - resources/territories/MG.yml
265
+ - resources/territories/MH.yml
266
+ - resources/territories/MK.yml
267
+ - resources/territories/ML.yml
268
+ - resources/territories/MM.yml
269
+ - resources/territories/MN.yml
270
+ - resources/territories/MO.yml
271
+ - resources/territories/MP.yml
272
+ - resources/territories/MQ.yml
273
+ - resources/territories/MR.yml
274
+ - resources/territories/MS.yml
275
+ - resources/territories/MT.yml
276
+ - resources/territories/MU.yml
277
+ - resources/territories/MV.yml
278
+ - resources/territories/MW.yml
279
+ - resources/territories/MX.yml
280
+ - resources/territories/MY.yml
281
+ - resources/territories/MZ.yml
282
+ - resources/territories/NA.yml
283
+ - resources/territories/NC.yml
284
+ - resources/territories/NE.yml
285
+ - resources/territories/NF.yml
286
+ - resources/territories/NG.yml
287
+ - resources/territories/NI.yml
288
+ - resources/territories/NL.yml
289
+ - resources/territories/NO.yml
290
+ - resources/territories/NP.yml
291
+ - resources/territories/NR.yml
292
+ - resources/territories/NU.yml
293
+ - resources/territories/NZ.yml
294
+ - resources/territories/OM.yml
295
+ - resources/territories/PA.yml
296
+ - resources/territories/PE.yml
297
+ - resources/territories/PF.yml
298
+ - resources/territories/PG.yml
299
+ - resources/territories/PH.yml
300
+ - resources/territories/PK.yml
301
+ - resources/territories/PL.yml
302
+ - resources/territories/PM.yml
303
+ - resources/territories/PR.yml
304
+ - resources/territories/PS.yml
305
+ - resources/territories/PT.yml
306
+ - resources/territories/PW.yml
307
+ - resources/territories/PY.yml
308
+ - resources/territories/QA.yml
309
+ - resources/territories/RE.yml
310
+ - resources/territories/RO.yml
311
+ - resources/territories/RS.yml
312
+ - resources/territories/RU.yml
313
+ - resources/territories/RW.yml
314
+ - resources/territories/SA.yml
315
+ - resources/territories/SB.yml
316
+ - resources/territories/SC.yml
317
+ - resources/territories/SD.yml
318
+ - resources/territories/SE.yml
319
+ - resources/territories/SG.yml
320
+ - resources/territories/SH.yml
321
+ - resources/territories/SI.yml
322
+ - resources/territories/SJ.yml
323
+ - resources/territories/SK.yml
324
+ - resources/territories/SL.yml
325
+ - resources/territories/SM.yml
326
+ - resources/territories/SN.yml
327
+ - resources/territories/SO.yml
328
+ - resources/territories/SR.yml
329
+ - resources/territories/ST.yml
330
+ - resources/territories/SV.yml
331
+ - resources/territories/SY.yml
332
+ - resources/territories/SZ.yml
333
+ - resources/territories/TC.yml
334
+ - resources/territories/TD.yml
335
+ - resources/territories/TF.yml
336
+ - resources/territories/TG.yml
337
+ - resources/territories/TH.yml
338
+ - resources/territories/TJ.yml
339
+ - resources/territories/TK.yml
340
+ - resources/territories/TL.yml
341
+ - resources/territories/TM.yml
342
+ - resources/territories/TN.yml
343
+ - resources/territories/TO.yml
344
+ - resources/territories/TR.yml
345
+ - resources/territories/TT.yml
346
+ - resources/territories/TV.yml
347
+ - resources/territories/TW.yml
348
+ - resources/territories/TZ.yml
349
+ - resources/territories/UA.yml
350
+ - resources/territories/UG.yml
351
+ - resources/territories/US.yml
352
+ - resources/territories/UY.yml
353
+ - resources/territories/UZ.yml
354
+ - resources/territories/VA.yml
355
+ - resources/territories/VC.yml
356
+ - resources/territories/VE.yml
357
+ - resources/territories/VG.yml
358
+ - resources/territories/VI.yml
359
+ - resources/territories/VN.yml
360
+ - resources/territories/VU.yml
361
+ - resources/territories/WF.yml
362
+ - resources/territories/WS.yml
363
+ - resources/territories/YE.yml
364
+ - resources/territories/YT.yml
365
+ - resources/territories/ZA.yml
366
+ - resources/territories/ZM.yml
367
+ - resources/territories/ZW.yml
368
+ - tasks/as_dialed_from.rake
369
+ - test/as_dialed_from/metadata_test.rb
370
+ - test/as_dialed_from/number_test.rb
371
+ - test/as_dialed_from_test.rb
372
+ - test/test_helper.rb
373
+ has_rdoc: true
374
+ homepage: http://github.com/Movitas/as_dialed_from
375
+ licenses:
376
+ - Apache
377
+ post_install_message:
378
+ rdoc_options: []
379
+
380
+ require_paths:
381
+ - lib
382
+ required_ruby_version: !ruby/object:Gem::Requirement
383
+ none: false
384
+ requirements:
385
+ - - ">="
386
+ - !ruby/object:Gem::Version
387
+ hash: -1405250847003284636
388
+ segments:
389
+ - 0
390
+ version: "0"
391
+ required_rubygems_version: !ruby/object:Gem::Requirement
392
+ none: false
393
+ requirements:
394
+ - - ">="
395
+ - !ruby/object:Gem::Version
396
+ version: "0"
397
+ requirements: []
398
+
399
+ rubyforge_project:
400
+ rubygems_version: 1.6.2
401
+ signing_key:
402
+ specification_version: 3
403
+ summary: Figure out how a number should be dialed from another country
404
+ test_files: []
405
+