phony 2.1.4 → 2.2.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.
- checksums.yaml +6 -14
- data/lib/phony/countries/italy.rb +1 -1
- data/lib/phony/country.rb +2 -17
- data/lib/phony/country_codes.rb +14 -1
- data/spec/functional/error_spec.rb +22 -0
- data/spec/functional/plausibility_spec.rb +8 -1
- data/spec/lib/phony/countries_spec.rb +2 -2
- data/spec/lib/phony/country_spec.rb +1 -1
- data/spec/lib/phony_spec.rb +6 -6
- metadata +11 -9
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
NGZiMDE5NWY0YmNiZDRiYWYxMDNjMTU3ZGEyYWViYTRkNmI1ZmFmODRjODgx
|
10
|
-
MWIwN2M1OTBlY2E1MmU0ZWM1ZTVhZDgxODczNDZjY2IwMTU2YzFkODg3NWUz
|
11
|
-
ZjAxNGJlODg2OWNkNjk2YWVkNDhiOTU4MTQ1ODE3MzQ2MjZjNmU=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
ZmJjOTI5NzNjODU1YmI2YTdiMjU4ZjhiN2JhNzg2OGY3ZDkyZjNiNTNmNmUz
|
14
|
-
Mzg5N2YyMWNhNmRhYTlmNzM5NDBlYWViZDgyMjg2ZDMzODcwNjM5NTZkN2Y5
|
15
|
-
YzE0MDFkMjVkNDYwNzdjNDcwZDlhYTMzMWQ1OTI2ZDFjMzNhZDE=
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: cab09437919d2b8ac9980c997aca16b6029bc14b
|
4
|
+
data.tar.gz: c764db5c678f5bc78c6a49180319b7647e7c39a1
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: b6261b97af629e5f22fcfd53dff8c91decee37fa4ac50fec962cb065eab5e799ab33df8fe4c1997a22641a8facafa91af5a0f2a270a3c9a691d250f4f3411b71
|
7
|
+
data.tar.gz: 74e8df4cb1aa40c3416d8813a13d5e04639c54a0070293af51c792f60f5fecb914c2efdd8b5e8bc9aea79f7057c8597795ba935d17a2f4c855e7e7103cdce585
|
@@ -158,6 +158,6 @@ Phony.define do
|
|
158
158
|
one_of(*service) >> split(3,3) |
|
159
159
|
one_of(*mobile) >> split(3,4) |
|
160
160
|
one_of(*ndcs_2digit) >> split(4,4) |
|
161
|
-
one_of(*ndcs_3digit) >> split(
|
161
|
+
one_of(*ndcs_3digit) >> split(6..7) |
|
162
162
|
one_of(*ndcs_4digit) >> split(3,3)
|
163
163
|
end
|
data/lib/phony/country.rb
CHANGED
@@ -24,9 +24,8 @@ module Phony
|
|
24
24
|
# TODO Rewrite.
|
25
25
|
#
|
26
26
|
def with cc, options = {}
|
27
|
-
@cc
|
28
|
-
@
|
29
|
-
@invalid_ndcs = options[:invalid_ndcs] || []
|
27
|
+
@cc = cc
|
28
|
+
@invalid_ndcs = options[:invalid_ndcs] || []
|
30
29
|
end
|
31
30
|
|
32
31
|
# A number is split with the code handlers as given in the initializer.
|
@@ -60,18 +59,6 @@ module Phony
|
|
60
59
|
number.gsub!(@@basic_cleaning_pattern, EMPTY_STRING) || number
|
61
60
|
end
|
62
61
|
|
63
|
-
# Adds the country code to the front
|
64
|
-
# if it does not already start with it.
|
65
|
-
#
|
66
|
-
# Note: This won't be correct in some cases, but it is the best we can do.
|
67
|
-
#
|
68
|
-
def countrify number
|
69
|
-
countrify! number || number
|
70
|
-
end
|
71
|
-
def countrify! number
|
72
|
-
number.sub! @countrify_regex, @cc
|
73
|
-
end
|
74
|
-
|
75
62
|
# Removes 0s from partially normalized numbers
|
76
63
|
# such as 410443643533.
|
77
64
|
#
|
@@ -87,8 +74,6 @@ module Phony
|
|
87
74
|
break result if result
|
88
75
|
number
|
89
76
|
end
|
90
|
-
return unless normalized
|
91
|
-
countrify! normalized
|
92
77
|
normalized
|
93
78
|
end
|
94
79
|
|
data/lib/phony/country_codes.rb
CHANGED
@@ -40,6 +40,18 @@ module Phony
|
|
40
40
|
def clean! number
|
41
41
|
number.gsub!(@@basic_cleaning_pattern, EMPTY_STRING) || number
|
42
42
|
end
|
43
|
+
|
44
|
+
# Adds the country code to the front
|
45
|
+
# if it does not already start with it.
|
46
|
+
#
|
47
|
+
# Note: This won't be correct in some cases, but it is the best we can do.
|
48
|
+
#
|
49
|
+
def countrify number, cc
|
50
|
+
countrify!(number, cc) || number
|
51
|
+
end
|
52
|
+
def countrify! number, cc
|
53
|
+
number.sub! /\A/, cc # @countrify_regex, @cc
|
54
|
+
end
|
43
55
|
|
44
56
|
# 00 for the standard international call prefix.
|
45
57
|
# http://en.wikipedia.org/wiki/List_of_international_call_prefixes
|
@@ -60,7 +72,8 @@ module Phony
|
|
60
72
|
country, cc, number = split_cc number
|
61
73
|
country
|
62
74
|
end
|
63
|
-
country.normalize number
|
75
|
+
number = country.normalize number
|
76
|
+
countrify! number, cc
|
64
77
|
end
|
65
78
|
|
66
79
|
# Splits this number into cc, ndc and locally split number parts.
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'Issues' do
|
4
|
+
|
5
|
+
describe '#136' do
|
6
|
+
|
7
|
+
it 'is correct for country 39' do
|
8
|
+
Phony.normalize('+39 393 0000000').should == '393930000000'
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'fixes #136' do
|
12
|
+
italia = Phony['39']
|
13
|
+
italia.normalize('363 000000').should == '363000000'
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'is correct for country 46' do
|
17
|
+
Phony.normalize('+46 (0)46 222 0000').should == '46462220000'
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
@@ -162,9 +162,16 @@ describe 'plausibility' do
|
|
162
162
|
end
|
163
163
|
it 'is correct for Italian numbers' do
|
164
164
|
Phony.plausible?('+39 06 1234 4567').should be_true
|
165
|
+
|
166
|
+
Phony.plausible?('+39 035 00000').should be_false
|
167
|
+
Phony.plausible?('+39 035 000000').should be_true
|
168
|
+
Phony.plausible?('+39 015 8407324').should be_true
|
169
|
+
|
170
|
+
Phony.plausible?('+39 0471 123 456').should be_true
|
171
|
+
|
172
|
+
# Mobile
|
165
173
|
Phony.plausible?('+39 335 123 4567').should be_true
|
166
174
|
Phony.plausible?('+39 335 123').should be_false
|
167
|
-
Phony.plausible?('+39 0471 123 456').should be_true
|
168
175
|
end
|
169
176
|
it 'is correct for German numbers' do
|
170
177
|
Phony.plausible?('+49 209 169 - 0').should be_true # Gelsenkirchen
|
@@ -339,8 +339,8 @@ describe 'country descriptions' do
|
|
339
339
|
it_splits '390612341234', ['39', '06', '1234', '1234'] # Roma
|
340
340
|
it_splits '390288838883', ['39', '02', '8883', '8883'] # Milano
|
341
341
|
it_splits '390141595661', ['39', '0141', '595', '661'] # Asti
|
342
|
-
it_splits '3903123391', ['39', '031', '
|
343
|
-
it_splits '390909709511', ['39', '090', '
|
342
|
+
it_splits '3903123391', ['39', '031', '23391'] # Como
|
343
|
+
it_splits '390909709511', ['39', '090', '9709511'] # Barcellona
|
344
344
|
it_splits '390471811353', ['39', '0471', '811', '353'] # Bolzano
|
345
345
|
end
|
346
346
|
describe 'Japan' do
|
data/spec/lib/phony_spec.rb
CHANGED
@@ -9,7 +9,7 @@ describe Phony do
|
|
9
9
|
it '' do
|
10
10
|
us = described_class['1']
|
11
11
|
us.plausible?('4159224711').should be_true
|
12
|
-
us.
|
12
|
+
us.normalize('4159224711').should == '4159224711'
|
13
13
|
end
|
14
14
|
end
|
15
15
|
end
|
@@ -82,13 +82,13 @@ describe Phony do
|
|
82
82
|
end
|
83
83
|
describe 'country-based' do
|
84
84
|
it 'normalizes the US correctly' do
|
85
|
-
Phony["1"].normalize("555 1234567890").should == '
|
86
|
-
Phony["1"].normalize("+1 555 1234567890").should == '
|
87
|
-
Phony["1"].normalize("+1 (0) 555 1234567890").should == '
|
85
|
+
Phony["1"].normalize("555 1234567890").should == '5551234567890'
|
86
|
+
Phony["1"].normalize("+1 555 1234567890").should == '5551234567890'
|
87
|
+
Phony["1"].normalize("+1 (0) 555 1234567890").should == '5551234567890'
|
88
88
|
end
|
89
89
|
it 'normalizes Japan correctly' do
|
90
|
-
Phony["81"].normalize("80 1234 5634").should == '
|
91
|
-
Phony["81"].normalize("
|
90
|
+
Phony["81"].normalize("80 1234 5634").should == '8012345634'
|
91
|
+
Phony["81"].normalize("Hello 80 1234 5634").should == '8012345634'
|
92
92
|
end
|
93
93
|
end
|
94
94
|
end
|
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: phony
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Florian Hanke
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-02-
|
11
|
+
date: 2014-02-21 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
|
-
description:
|
13
|
+
description: 'Fast international phone number (E164 standard) normalizing, splitting
|
14
14
|
and formatting. Lots of formatting options: International (+.., 00..), national
|
15
15
|
(0..), and local).'
|
16
16
|
email: florian.hanke+phony@gmail.com
|
@@ -19,6 +19,9 @@ extensions: []
|
|
19
19
|
extra_rdoc_files:
|
20
20
|
- README.textile
|
21
21
|
files:
|
22
|
+
- README.textile
|
23
|
+
- lib/phony.rb
|
24
|
+
- lib/phony/countries.rb
|
22
25
|
- lib/phony/countries/austria.rb
|
23
26
|
- lib/phony/countries/bangladesh.rb
|
24
27
|
- lib/phony/countries/belarus.rb
|
@@ -55,7 +58,6 @@ files:
|
|
55
58
|
- lib/phony/countries/united_kingdom.rb
|
56
59
|
- lib/phony/countries/uruguay.rb
|
57
60
|
- lib/phony/countries/zimbabwe.rb
|
58
|
-
- lib/phony/countries.rb
|
59
61
|
- lib/phony/country.rb
|
60
62
|
- lib/phony/country_codes.rb
|
61
63
|
- lib/phony/dsl.rb
|
@@ -70,8 +72,7 @@ files:
|
|
70
72
|
- lib/phony/national_splitters/variable.rb
|
71
73
|
- lib/phony/trunk_code.rb
|
72
74
|
- lib/phony/vanity.rb
|
73
|
-
-
|
74
|
-
- README.textile
|
75
|
+
- spec/functional/error_spec.rb
|
75
76
|
- spec/functional/normalize_spec.rb
|
76
77
|
- spec/functional/plausibility_spec.rb
|
77
78
|
- spec/lib/phony/countries_spec.rb
|
@@ -97,22 +98,23 @@ require_paths:
|
|
97
98
|
- lib
|
98
99
|
required_ruby_version: !ruby/object:Gem::Requirement
|
99
100
|
requirements:
|
100
|
-
- -
|
101
|
+
- - ">="
|
101
102
|
- !ruby/object:Gem::Version
|
102
103
|
version: '0'
|
103
104
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
104
105
|
requirements:
|
105
|
-
- -
|
106
|
+
- - ">="
|
106
107
|
- !ruby/object:Gem::Version
|
107
108
|
version: '0'
|
108
109
|
requirements: []
|
109
110
|
rubyforge_project:
|
110
|
-
rubygems_version: 2.0
|
111
|
+
rubygems_version: 2.2.0
|
111
112
|
signing_key:
|
112
113
|
specification_version: 4
|
113
114
|
summary: Fast international phone number (E164 standard) normalizing, splitting and
|
114
115
|
formatting.
|
115
116
|
test_files:
|
117
|
+
- spec/functional/error_spec.rb
|
116
118
|
- spec/functional/normalize_spec.rb
|
117
119
|
- spec/functional/plausibility_spec.rb
|
118
120
|
- spec/lib/phony/countries_spec.rb
|