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.
- data/.gitignore +1 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +31 -0
- data/LICENSE.txt +22 -0
- data/README.md +184 -0
- data/Rakefile +12 -0
- data/lib/phoner.rb +10 -0
- data/lib/phoner/country.rb +120 -0
- data/lib/phoner/data/phone_countries.yml +1691 -0
- data/lib/phoner/phone.rb +222 -0
- data/lib/phoner/version.rb +3 -0
- data/phoner.gemspec +23 -0
- data/test/countries/ae_test.rb +15 -0
- data/test/countries/af_test.rb +12 -0
- data/test/countries/al_test.rb +12 -0
- data/test/countries/ar_test.rb +12 -0
- data/test/countries/at_test.rb +14 -0
- data/test/countries/au_test.rb +48 -0
- data/test/countries/ba_test.rb +9 -0
- data/test/countries/bd_test.rb +17 -0
- data/test/countries/be_test.rb +120 -0
- data/test/countries/bg_test.rb +13 -0
- data/test/countries/bo_test.rb +12 -0
- data/test/countries/br_test.rb +12 -0
- data/test/countries/bt_test.rb +9 -0
- data/test/countries/by_test.rb +12 -0
- data/test/countries/bz_test.rb +12 -0
- data/test/countries/ca_test.rb +20 -0
- data/test/countries/cr_test.rb +12 -0
- data/test/countries/cy_test.rb +12 -0
- data/test/countries/cz_test.rb +12 -0
- data/test/countries/de_test.rb +18 -0
- data/test/countries/dk_test.rb +12 -0
- data/test/countries/dz_test.rb +12 -0
- data/test/countries/ec_test.rb +12 -0
- data/test/countries/ee_test.rb +12 -0
- data/test/countries/eg_test.rb +9 -0
- data/test/countries/et_test.rb +11 -0
- data/test/countries/fi_test.rb +12 -0
- data/test/countries/fr_test.rb +22 -0
- data/test/countries/gb_test.rb +262 -0
- data/test/countries/ge_test.rb +12 -0
- data/test/countries/gh_test.rb +9 -0
- data/test/countries/gr_test.rb +9 -0
- data/test/countries/gt_test.rb +12 -0
- data/test/countries/gu_test.rb +9 -0
- data/test/countries/gy_test.rb +9 -0
- data/test/countries/hr_test.rb +75 -0
- data/test/countries/hu_test.rb +12 -0
- data/test/countries/il_test.rb +12 -0
- data/test/countries/in_test.rb +45 -0
- data/test/countries/ir_test.rb +13 -0
- data/test/countries/it_test.rb +16 -0
- data/test/countries/ke_test.rb +12 -0
- data/test/countries/lk_test.rb +9 -0
- data/test/countries/lu_test.rb +16 -0
- data/test/countries/ng_test.rb +9 -0
- data/test/countries/nl_test.rb +383 -0
- data/test/countries/no_test.rb +12 -0
- data/test/countries/np_test.rb +15 -0
- data/test/countries/ph_test.rb +9 -0
- data/test/countries/pk_test.rb +9 -0
- data/test/countries/pt_test.rb +129 -0
- data/test/countries/qa_test.rb +9 -0
- data/test/countries/rs_test.rb +15 -0
- data/test/countries/sa_test.rb +9 -0
- data/test/countries/se_test.rb +478 -0
- data/test/countries/si_test.rb +19 -0
- data/test/countries/sv_test.rb +12 -0
- data/test/countries/to_test.rb +12 -0
- data/test/countries/ua_test.rb +17 -0
- data/test/countries/us_test.rb +24 -0
- data/test/countries/uy_test.rb +20 -0
- data/test/countries/za_test.rb +19 -0
- data/test/countries/zw_test.rb +12 -0
- data/test/country_test.rb +27 -0
- data/test/extension_test.rb +30 -0
- data/test/phone_test.rb +149 -0
- data/test/test_helper.rb +33 -0
- 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
|
data/test/phone_test.rb
ADDED
@@ -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
|
data/test/test_helper.rb
ADDED
@@ -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
|