phoner 1.0

Sign up to get free protection for your applications and to get access to all the features.
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