phoner 1.0

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 (80) hide show
  1. data/.gitignore +1 -0
  2. data/Gemfile +8 -0
  3. data/Gemfile.lock +31 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +184 -0
  6. data/Rakefile +12 -0
  7. data/lib/phoner.rb +10 -0
  8. data/lib/phoner/country.rb +120 -0
  9. data/lib/phoner/data/phone_countries.yml +1691 -0
  10. data/lib/phoner/phone.rb +222 -0
  11. data/lib/phoner/version.rb +3 -0
  12. data/phoner.gemspec +23 -0
  13. data/test/countries/ae_test.rb +15 -0
  14. data/test/countries/af_test.rb +12 -0
  15. data/test/countries/al_test.rb +12 -0
  16. data/test/countries/ar_test.rb +12 -0
  17. data/test/countries/at_test.rb +14 -0
  18. data/test/countries/au_test.rb +48 -0
  19. data/test/countries/ba_test.rb +9 -0
  20. data/test/countries/bd_test.rb +17 -0
  21. data/test/countries/be_test.rb +120 -0
  22. data/test/countries/bg_test.rb +13 -0
  23. data/test/countries/bo_test.rb +12 -0
  24. data/test/countries/br_test.rb +12 -0
  25. data/test/countries/bt_test.rb +9 -0
  26. data/test/countries/by_test.rb +12 -0
  27. data/test/countries/bz_test.rb +12 -0
  28. data/test/countries/ca_test.rb +20 -0
  29. data/test/countries/cr_test.rb +12 -0
  30. data/test/countries/cy_test.rb +12 -0
  31. data/test/countries/cz_test.rb +12 -0
  32. data/test/countries/de_test.rb +18 -0
  33. data/test/countries/dk_test.rb +12 -0
  34. data/test/countries/dz_test.rb +12 -0
  35. data/test/countries/ec_test.rb +12 -0
  36. data/test/countries/ee_test.rb +12 -0
  37. data/test/countries/eg_test.rb +9 -0
  38. data/test/countries/et_test.rb +11 -0
  39. data/test/countries/fi_test.rb +12 -0
  40. data/test/countries/fr_test.rb +22 -0
  41. data/test/countries/gb_test.rb +262 -0
  42. data/test/countries/ge_test.rb +12 -0
  43. data/test/countries/gh_test.rb +9 -0
  44. data/test/countries/gr_test.rb +9 -0
  45. data/test/countries/gt_test.rb +12 -0
  46. data/test/countries/gu_test.rb +9 -0
  47. data/test/countries/gy_test.rb +9 -0
  48. data/test/countries/hr_test.rb +75 -0
  49. data/test/countries/hu_test.rb +12 -0
  50. data/test/countries/il_test.rb +12 -0
  51. data/test/countries/in_test.rb +45 -0
  52. data/test/countries/ir_test.rb +13 -0
  53. data/test/countries/it_test.rb +16 -0
  54. data/test/countries/ke_test.rb +12 -0
  55. data/test/countries/lk_test.rb +9 -0
  56. data/test/countries/lu_test.rb +16 -0
  57. data/test/countries/ng_test.rb +9 -0
  58. data/test/countries/nl_test.rb +383 -0
  59. data/test/countries/no_test.rb +12 -0
  60. data/test/countries/np_test.rb +15 -0
  61. data/test/countries/ph_test.rb +9 -0
  62. data/test/countries/pk_test.rb +9 -0
  63. data/test/countries/pt_test.rb +129 -0
  64. data/test/countries/qa_test.rb +9 -0
  65. data/test/countries/rs_test.rb +15 -0
  66. data/test/countries/sa_test.rb +9 -0
  67. data/test/countries/se_test.rb +478 -0
  68. data/test/countries/si_test.rb +19 -0
  69. data/test/countries/sv_test.rb +12 -0
  70. data/test/countries/to_test.rb +12 -0
  71. data/test/countries/ua_test.rb +17 -0
  72. data/test/countries/us_test.rb +24 -0
  73. data/test/countries/uy_test.rb +20 -0
  74. data/test/countries/za_test.rb +19 -0
  75. data/test/countries/zw_test.rb +12 -0
  76. data/test/country_test.rb +27 -0
  77. data/test/extension_test.rb +30 -0
  78. data/test/phone_test.rb +149 -0
  79. data/test/test_helper.rb +33 -0
  80. metadata +237 -0
@@ -0,0 +1,19 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
2
+
3
+ ## Slovenia
4
+ class SITest < Phoner::TestCase
5
+ def test_local
6
+ #Maribor
7
+ parse_test('+ 386 2 23 46 611', '386', '2', '2346611')
8
+ end
9
+
10
+ def test_local_2
11
+ # Koper
12
+ parse_test('+ 386 5 23 46 611', '386', '5', '2346611', "Slovenia", false)
13
+ end
14
+
15
+ def test_mobile
16
+ # Mobitel
17
+ parse_test('+386 51 258999', '386', '51', '258999', "Slovenia", true)
18
+ end
19
+ end
@@ -0,0 +1,12 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
2
+
3
+ ## El Salvador
4
+ class SVTest < Phoner::TestCase
5
+ def test_local
6
+ parse_test('+50321234567', '503', '2', '1234567', 'El Salvador', false)
7
+ end
8
+
9
+ def test_mobile
10
+ parse_test('+50371234567', '503', '7', '1234567', 'El Salvador', true)
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
2
+
3
+ ## Tonga
4
+ class TOTest < Phoner::TestCase
5
+ def test_local
6
+ parse_test('+67679321', '676', '79', '321', "Tonga", false)
7
+ end
8
+
9
+ def test_mobile
10
+ parse_test('67688321', '676', '88', '321', "Tonga", true)
11
+ end
12
+ end
@@ -0,0 +1,17 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
2
+
3
+ ## Ukraine
4
+ class UATest < Phoner::TestCase
5
+
6
+ def test_local
7
+ parse_test('+380 57 711 22 33', '380', '57', '7112233', "Ukraine", false)
8
+ end
9
+
10
+ def test_mobile
11
+ parse_test('+380-50-111-22-33', '380', '50', '1112233', "Ukraine", true)
12
+ end
13
+
14
+ def test_mobile2
15
+ parse_test('+380-66-042-22-01', '380', '66', '0422201', "Ukraine", true)
16
+ end
17
+ end
@@ -0,0 +1,24 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
2
+
3
+ ## United States
4
+ class USTest < Phoner::TestCase
5
+
6
+ def test_local
7
+ parse_test('+1 251 123 4567', '1', '251', '1234567', 'United States')
8
+ end
9
+
10
+ def test_tollfree
11
+ parse_test('+1 800 555 3456', '1', '800', '5553456', 'United States')
12
+ end
13
+
14
+ def test_long_with_default_country_code
15
+ Phoner::Phone.default_country_code = '1'
16
+ parse_test('2069735100', '1', '206', '9735100', 'United States')
17
+ end
18
+
19
+ def test_short_with_default_country_code_and_area_code
20
+ Phoner::Phone.default_country_code = '1'
21
+ Phoner::Phone.default_area_code = '206'
22
+ parse_test('9735100', '1', '206', '9735100', 'United States')
23
+ end
24
+ end
@@ -0,0 +1,20 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
2
+
3
+ ## Uruguay
4
+ # source: http://en.wikipedia.org/wiki/Telephone_numbers_in_Uruguay
5
+ class UYTest < Phoner::TestCase
6
+ # 02 Montevideo
7
+ def test_montevideo
8
+ parse_test('+598 2 1234567', '598', '2', '1234567')
9
+ end
10
+
11
+ # 042 Maldonado
12
+ def test_maldonado
13
+ parse_test('+598 42 123456', '598', '42', '123456', "Uruguay", false)
14
+ end
15
+
16
+ # 09 Mobile phones
17
+ def test_mobile_phones
18
+ parse_test('+598 99 570110', '598', '99', '570110', "Uruguay", true)
19
+ end
20
+ end
@@ -0,0 +1,19 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
2
+
3
+ ## South Africa
4
+ class ZATest < Phoner::TestCase
5
+ def test_local
6
+ # Telkom
7
+ parse_test('+27 11 555 5555', '27', '11', '5555555', "South Africa", false)
8
+ end
9
+
10
+ def test_mobile
11
+ # Vodacom
12
+ parse_test('+27 82 555 5555', '27', '82', '5555555', "South Africa", true)
13
+ end
14
+
15
+ def test_tollfree
16
+ # Telkom
17
+ parse_test('+27 800 123 321', '27', '800', '123321', "South Africa", false)
18
+ end
19
+ end
@@ -0,0 +1,12 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
2
+
3
+ ## Zimbabwe
4
+ class ZWTest < Phoner::TestCase
5
+ def test_local
6
+ parse_test('+263454168409', '263', '4', '54168409', "Zimbabwe", false)
7
+ end
8
+
9
+ def test_mobile
10
+ parse_test('263774168409', '263', '77', '4168409', "Zimbabwe", true)
11
+ end
12
+ end
@@ -0,0 +1,27 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/test_helper')
2
+
3
+ class CountryTest < Phoner::TestCase
4
+ def test_find_by_country_name
5
+ country = Phoner::Country.find_by_name('canada')
6
+ assert_equal country.name, "Canada"
7
+
8
+ country = Phoner::Country.find_by_name('Canada')
9
+ assert_equal country.name, "Canada"
10
+
11
+ assert_nil Phoner::Country.find_by_name(nil)
12
+ assert_nil Phoner::Country.find_by_country_code(nil)
13
+ assert_equal [], Phoner::Country.find_all_by_phone_code(nil)
14
+ end
15
+
16
+ def test_find_by_country_code
17
+ country = Phoner::Country.find_by_country_code('NO')
18
+ assert_equal country.name, "Norway"
19
+ end
20
+
21
+ def test_find_all_by_phone_code
22
+ countries = Phoner::Country.find_all_by_phone_code('47')
23
+ assert_equal countries.length, 1
24
+ assert_equal countries.first.name, "Norway"
25
+ end
26
+
27
+ end
@@ -0,0 +1,30 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/test_helper')
2
+
3
+ class ExtensionTest < Test::Unit::TestCase
4
+
5
+ def test_parse_usa_long_with_simple_extension
6
+ pn = Phoner::Phone.parse "+1 2069735100 x143"
7
+
8
+ assert_not_nil pn, %Q{parse should pass}
9
+ assert_equal '9735100', pn.number
10
+ assert_equal '206', pn.area_code
11
+ assert_equal '1', pn.country_code
12
+ assert_equal '143', pn.extension
13
+ end
14
+
15
+ def test_to_s_with_extension
16
+ pn = Phoner::Phone.new '5125486', '91', '385', '143'
17
+ assert_equal '+385915125486x143', pn.format(:default_with_extension)
18
+ end
19
+
20
+ def test_format_with_extension
21
+ pn = Phoner::Phone.new '5125486', '91', '385', '143'
22
+ assert_equal '(091)/512-5486 x 143', pn.format('(%A)/%f-%l x %x')
23
+ end
24
+
25
+ def test_validation_keeps_extension
26
+ number = "555-555-1212 ext 1234"
27
+ Phoner::Phone.valid?(number)
28
+ assert_equal "555-555-1212 ext 1234", number
29
+ end
30
+ end
@@ -0,0 +1,149 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/test_helper')
2
+
3
+ class PhoneTest < Phoner::TestCase
4
+
5
+ def test_is_mobile
6
+ assert Phoner::Phone.is_mobile?("918124452900")
7
+ end
8
+
9
+ def test_number_without_country_code_initialize
10
+ Phoner::Phone.default_country_code = nil
11
+
12
+ assert_raise RuntimeError do
13
+ pn = Phoner::Phone.new '5125486', '91'
14
+ end
15
+ end
16
+
17
+ def test_number_without_country_and_area_code_initialize
18
+ Phoner::Phone.default_country_code = nil
19
+ Phoner::Phone.default_area_code = nil
20
+
21
+ assert_raise RuntimeError do
22
+ pn = Phoner::Phone.new '451588'
23
+ end
24
+ end
25
+
26
+ def test_number_with_default_area_code_initialize
27
+ Phoner::Phone.default_country_code = '385'
28
+ Phoner::Phone.default_area_code = '47'
29
+
30
+ pn = Phoner::Phone.new '451588'
31
+ assert pn.number == '451588'
32
+ assert pn.area_code == '47'
33
+ assert pn.country_code == '385'
34
+ end
35
+
36
+ def test_number_with_default_country_code_initialize
37
+ Phoner::Phone.default_country_code = '386'
38
+
39
+ pn = Phoner::Phone.new '5125486', '91'
40
+ assert pn.number == '5125486'
41
+ assert pn.area_code == '91'
42
+ assert pn.country_code == '386'
43
+ end
44
+
45
+ def test_number_with_country_code_initialize
46
+ Phoner::Phone.default_country_code = '387'
47
+
48
+ pn = Phoner::Phone.new '5125486', '91', '385'
49
+ assert pn.number == '5125486'
50
+ assert pn.area_code == '91'
51
+ assert pn.country_code == '385'
52
+ end
53
+
54
+ def test_parse_empty
55
+ assert_equal Phoner::Phone.parse(''), nil
56
+ assert_equal Phoner::Phone.parse(nil), nil
57
+ end
58
+
59
+ def test_parse_short_without_special_characters_without_country
60
+ Phoner::Phone.default_country_code = nil
61
+
62
+ assert_nil Phoner::Phone.parse "0915125486"
63
+
64
+ assert_raise RuntimeError do
65
+ Phoner::Phone.parse! "0915125486"
66
+ end
67
+ end
68
+
69
+ def test_parse_short_with_special_characters_without_country
70
+ Phoner::Phone.default_country_code = nil
71
+
72
+ assert_nil Phoner::Phone.parse "091/512-5486"
73
+
74
+ assert_raise RuntimeError do
75
+ Phoner::Phone.parse! "091/512-5486"
76
+ end
77
+ end
78
+
79
+ def test_to_s
80
+ Phoner::Phone.default_country_code = nil
81
+ pn = Phoner::Phone.new '5125486', '91', '385'
82
+ assert pn.to_s == '+385915125486'
83
+ end
84
+
85
+ def test_to_s_without_country_code
86
+ Phoner::Phone.default_country_code = '385'
87
+ pn = Phoner::Phone.new '5125486', '91'
88
+ assert pn.format("0%a%n") == '0915125486'
89
+ end
90
+
91
+ def test_format_special_with_country_code
92
+ Phoner::Phone.default_country_code = nil
93
+ pn = Phoner::Phone.new '5125486', '91', '385'
94
+ assert pn.format("+ %c (%a) %n") == '+ 385 (91) 5125486'
95
+ end
96
+
97
+ def test_format_special_without_country_code
98
+ Phoner::Phone.default_country_code = '385'
99
+ pn = Phoner::Phone.new '5125486', '91'
100
+ assert_equal pn.format("%A/%f-%l"), '091/512-5486'
101
+ end
102
+
103
+ def test_format_with_symbol_specifier
104
+ Phoner::Phone.default_country_code = nil
105
+ pn = Phoner::Phone.new '5125486', '91', '385'
106
+ assert_equal pn.format(:europe), '+385 (0) 91 512 5486'
107
+ end
108
+
109
+ def test_valid
110
+ assert_equal Phoner::Phone.valid?('915125486', :country_code => '385'), true
111
+ assert_equal Phoner::Phone.valid?('385915125486'), true
112
+ end
113
+
114
+ def test_parse_with_multiple_country_codes
115
+ assert_equal Phoner::Phone.parse('915125486', :country_code => ['385', '47'])[:country_code], '385'
116
+ assert_equal Phoner::Phone.parse('915125486', :country_code => ['47', '385'])[:country_code], '385'
117
+ assert_equal Phoner::Phone.parse('90123456', :country_code => ['385', '47'])[:country_code], '47'
118
+ assert_equal Phoner::Phone.parse('90123456', :country_code => ['47', '385'])[:country_code], '47'
119
+
120
+ assert_equal Phoner::Phone.valid?('90123456', :country_code => ['385', '47']), true
121
+ assert_equal Phoner::Phone.valid?('915125486', :country_code => ['385', '47']), true
122
+ assert_equal Phoner::Phone.valid?('4790123456', :country_code => ['385', '47']), true
123
+ assert_equal Phoner::Phone.valid?('385915125486', :country_code => ['385', '47']), true
124
+ end
125
+
126
+ def test_doesnt_validate
127
+ assert_equal Phoner::Phone.valid?('asdas'), false
128
+ assert_equal Phoner::Phone.valid?('38591512548678'), false
129
+ end
130
+
131
+ def test_comparison_true
132
+ pn1 = Phoner::Phone.new '5125486', '91', '385'
133
+ pn2 = Phoner::Phone.new '5125486', '91', '385'
134
+ assert pn1 == pn2
135
+ end
136
+
137
+ def test_comparison_false
138
+ pn1 = Phoner::Phone.new '5125486', '91', '385'
139
+ pn2 = Phoner::Phone.new '1234567', '91', '385'
140
+ assert pn1 != pn2
141
+ end
142
+
143
+ def test_parse_number_without_international_code
144
+ assert_equal (Phoner::Phone.parse "90123456"), nil
145
+ assert_equal (Phoner::Phone.parse "90123456", :country_code => '47').format(:default), "+4790123456"
146
+ assert_equal (Phoner::Phone.parse "90123456", :country_code => '47', :area_code => '').format(:default), "+4790123456"
147
+ end
148
+
149
+ end
@@ -0,0 +1,33 @@
1
+ require 'test/unit'
2
+ require 'phoner'
3
+
4
+ def parse_test(raw, country_code, area_code, number, country_name = nil, is_mobile = nil)
5
+ pn = Phoner::Phone.parse(raw)
6
+
7
+ assert_not_nil pn, %Q{parse should pass}
8
+ assert_equal pn.country_code, country_code
9
+ assert_equal pn.area_code, area_code
10
+ assert_equal pn.number, number
11
+ if country_name
12
+ assert_equal pn.country.name, country_name
13
+ end
14
+
15
+ unless is_mobile.nil?
16
+ assert_equal is_mobile, pn.is_mobile?
17
+ end
18
+ end
19
+
20
+
21
+ class Phoner::TestCase < Test::Unit::TestCase
22
+
23
+ def setup
24
+ Phoner::Phone.default_country_code = nil
25
+ Phoner::Phone.default_area_code = nil
26
+ end
27
+
28
+ def default_test
29
+ klass = self.class.to_s
30
+ ancestors = (self.class.ancestors - [self.class]).collect { |ancestor| ancestor.to_s }
31
+ super unless klass =~ /TestCase/ or ancestors.first =~ /TestCase/
32
+ end
33
+ end
metadata ADDED
@@ -0,0 +1,237 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: phoner
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: '1.0'
6
+ platform: ruby
7
+ authors:
8
+ - Tomislav Car
9
+ - Todd Eichel
10
+ - Don Morrison
11
+ - Wesley Moxam
12
+ - Paul Chavard
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+ date: 2012-12-10 00:00:00.000000000 Z
17
+ dependencies:
18
+ - !ruby/object:Gem::Dependency
19
+ type: :runtime
20
+ version_requirements: !ruby/object:Gem::Requirement
21
+ none: false
22
+ requirements:
23
+ - - ! '>='
24
+ - !ruby/object:Gem::Version
25
+ version: '0'
26
+ name: activesupport
27
+ prerelease: false
28
+ requirement: !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ - !ruby/object:Gem::Dependency
35
+ type: :development
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ none: false
38
+ requirements:
39
+ - - ! '>='
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ name: rake
43
+ prerelease: false
44
+ requirement: !ruby/object:Gem::Requirement
45
+ none: false
46
+ requirements:
47
+ - - ! '>='
48
+ - !ruby/object:Gem::Version
49
+ version: '0'
50
+ description: Phone number parsing, validation and formatting.
51
+ email:
52
+ - tomislav@infinum.hr
53
+ - todd@toddeichel.com
54
+ - elskwid@gmail.com
55
+ - wesley.moxam@gmail.com
56
+ - paul@chavard.net
57
+ executables: []
58
+ extensions: []
59
+ extra_rdoc_files: []
60
+ files:
61
+ - .gitignore
62
+ - Gemfile
63
+ - Gemfile.lock
64
+ - LICENSE.txt
65
+ - README.md
66
+ - Rakefile
67
+ - lib/phoner.rb
68
+ - lib/phoner/country.rb
69
+ - lib/phoner/data/phone_countries.yml
70
+ - lib/phoner/phone.rb
71
+ - lib/phoner/version.rb
72
+ - phoner.gemspec
73
+ - test/countries/ae_test.rb
74
+ - test/countries/af_test.rb
75
+ - test/countries/al_test.rb
76
+ - test/countries/ar_test.rb
77
+ - test/countries/at_test.rb
78
+ - test/countries/au_test.rb
79
+ - test/countries/ba_test.rb
80
+ - test/countries/bd_test.rb
81
+ - test/countries/be_test.rb
82
+ - test/countries/bg_test.rb
83
+ - test/countries/bo_test.rb
84
+ - test/countries/br_test.rb
85
+ - test/countries/bt_test.rb
86
+ - test/countries/by_test.rb
87
+ - test/countries/bz_test.rb
88
+ - test/countries/ca_test.rb
89
+ - test/countries/cr_test.rb
90
+ - test/countries/cy_test.rb
91
+ - test/countries/cz_test.rb
92
+ - test/countries/de_test.rb
93
+ - test/countries/dk_test.rb
94
+ - test/countries/dz_test.rb
95
+ - test/countries/ec_test.rb
96
+ - test/countries/ee_test.rb
97
+ - test/countries/eg_test.rb
98
+ - test/countries/et_test.rb
99
+ - test/countries/fi_test.rb
100
+ - test/countries/fr_test.rb
101
+ - test/countries/gb_test.rb
102
+ - test/countries/ge_test.rb
103
+ - test/countries/gh_test.rb
104
+ - test/countries/gr_test.rb
105
+ - test/countries/gt_test.rb
106
+ - test/countries/gu_test.rb
107
+ - test/countries/gy_test.rb
108
+ - test/countries/hr_test.rb
109
+ - test/countries/hu_test.rb
110
+ - test/countries/il_test.rb
111
+ - test/countries/in_test.rb
112
+ - test/countries/ir_test.rb
113
+ - test/countries/it_test.rb
114
+ - test/countries/ke_test.rb
115
+ - test/countries/lk_test.rb
116
+ - test/countries/lu_test.rb
117
+ - test/countries/ng_test.rb
118
+ - test/countries/nl_test.rb
119
+ - test/countries/no_test.rb
120
+ - test/countries/np_test.rb
121
+ - test/countries/ph_test.rb
122
+ - test/countries/pk_test.rb
123
+ - test/countries/pt_test.rb
124
+ - test/countries/qa_test.rb
125
+ - test/countries/rs_test.rb
126
+ - test/countries/sa_test.rb
127
+ - test/countries/se_test.rb
128
+ - test/countries/si_test.rb
129
+ - test/countries/sv_test.rb
130
+ - test/countries/to_test.rb
131
+ - test/countries/ua_test.rb
132
+ - test/countries/us_test.rb
133
+ - test/countries/uy_test.rb
134
+ - test/countries/za_test.rb
135
+ - test/countries/zw_test.rb
136
+ - test/country_test.rb
137
+ - test/extension_test.rb
138
+ - test/phone_test.rb
139
+ - test/test_helper.rb
140
+ homepage: ''
141
+ licenses: []
142
+ post_install_message:
143
+ rdoc_options: []
144
+ require_paths:
145
+ - lib
146
+ required_ruby_version: !ruby/object:Gem::Requirement
147
+ none: false
148
+ requirements:
149
+ - - ! '>='
150
+ - !ruby/object:Gem::Version
151
+ segments:
152
+ - 0
153
+ hash: 3482966358617117454
154
+ version: '0'
155
+ required_rubygems_version: !ruby/object:Gem::Requirement
156
+ none: false
157
+ requirements:
158
+ - - ! '>='
159
+ - !ruby/object:Gem::Version
160
+ segments:
161
+ - 0
162
+ hash: 3482966358617117454
163
+ version: '0'
164
+ requirements: []
165
+ rubyforge_project:
166
+ rubygems_version: 1.8.23
167
+ signing_key:
168
+ specification_version: 3
169
+ summary: Phone number parsing, validation and formatting
170
+ test_files:
171
+ - test/countries/ae_test.rb
172
+ - test/countries/af_test.rb
173
+ - test/countries/al_test.rb
174
+ - test/countries/ar_test.rb
175
+ - test/countries/at_test.rb
176
+ - test/countries/au_test.rb
177
+ - test/countries/ba_test.rb
178
+ - test/countries/bd_test.rb
179
+ - test/countries/be_test.rb
180
+ - test/countries/bg_test.rb
181
+ - test/countries/bo_test.rb
182
+ - test/countries/br_test.rb
183
+ - test/countries/bt_test.rb
184
+ - test/countries/by_test.rb
185
+ - test/countries/bz_test.rb
186
+ - test/countries/ca_test.rb
187
+ - test/countries/cr_test.rb
188
+ - test/countries/cy_test.rb
189
+ - test/countries/cz_test.rb
190
+ - test/countries/de_test.rb
191
+ - test/countries/dk_test.rb
192
+ - test/countries/dz_test.rb
193
+ - test/countries/ec_test.rb
194
+ - test/countries/ee_test.rb
195
+ - test/countries/eg_test.rb
196
+ - test/countries/et_test.rb
197
+ - test/countries/fi_test.rb
198
+ - test/countries/fr_test.rb
199
+ - test/countries/gb_test.rb
200
+ - test/countries/ge_test.rb
201
+ - test/countries/gh_test.rb
202
+ - test/countries/gr_test.rb
203
+ - test/countries/gt_test.rb
204
+ - test/countries/gu_test.rb
205
+ - test/countries/gy_test.rb
206
+ - test/countries/hr_test.rb
207
+ - test/countries/hu_test.rb
208
+ - test/countries/il_test.rb
209
+ - test/countries/in_test.rb
210
+ - test/countries/ir_test.rb
211
+ - test/countries/it_test.rb
212
+ - test/countries/ke_test.rb
213
+ - test/countries/lk_test.rb
214
+ - test/countries/lu_test.rb
215
+ - test/countries/ng_test.rb
216
+ - test/countries/nl_test.rb
217
+ - test/countries/no_test.rb
218
+ - test/countries/np_test.rb
219
+ - test/countries/ph_test.rb
220
+ - test/countries/pk_test.rb
221
+ - test/countries/pt_test.rb
222
+ - test/countries/qa_test.rb
223
+ - test/countries/rs_test.rb
224
+ - test/countries/sa_test.rb
225
+ - test/countries/se_test.rb
226
+ - test/countries/si_test.rb
227
+ - test/countries/sv_test.rb
228
+ - test/countries/to_test.rb
229
+ - test/countries/ua_test.rb
230
+ - test/countries/us_test.rb
231
+ - test/countries/uy_test.rb
232
+ - test/countries/za_test.rb
233
+ - test/countries/zw_test.rb
234
+ - test/country_test.rb
235
+ - test/extension_test.rb
236
+ - test/phone_test.rb
237
+ - test/test_helper.rb