phony 2.5.3 → 2.5.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZGQ1ZTY1ZTQ1NTMxY2E1ZGU0Mzk2Y2IxODQ0YWRjYTUxM2VkNDI2OA==
4
+ MjgwYTAxZTZiNTRiOTViNDdiZDI5OTA4ZmE3Nzc5MmQ4NjM2Y2IxYQ==
5
5
  data.tar.gz: !binary |-
6
- MjQ5ODI0YzFlYjMxOTcxNjE2ODY4OWJkMmQzNjU3YTE4ZTdhYWJmYw==
6
+ NTM2M2M1NmE3YmZhZTg4MDM2MGY3ZTlkYmU4ZmQzMGRjNGViMzdkYQ==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- MDQ1YWM2ZWQ4NWIyOWNmMDg5ZDIxMmEwNDQ2OTRhNzY5MDM3YjM3ODBhNGQw
10
- MjQyZjIwOGQ2ZmY4MDBjNmY0OGI0Y2VhOWRiMTI3ZDhhZDAwMDJjNDA3ZjE1
11
- YWVhNGVkNzFjY2JhY2RkNzA2ZGNlZjg5YmQxYmIzZGNmZDI3ODI=
9
+ NWY2NWYyNjlhMTFmOWZhZDM3YWZiNTM1NjVmNGU1ZWIxYTQ4NWJmOGEyYjZl
10
+ ZTg5NDYwNjg3NDBmODRhYjYzMjk0ZWVjZDFiOTU2MTYyNWIyMWFmNjg3YTcy
11
+ Mjk4ZmQ1NzIzZmY1MjJkYzI4ZGU2OWZhMmJkZjczYjU5YTAwYjM=
12
12
  data.tar.gz: !binary |-
13
- YTk2N2Y1N2JlZjI2M2I1ZWY2YjY1MWJmNDk2MzFjOTljZmVlYTJkNmRmYmFj
14
- Yzk3MWQ4OTRlNTQyNDQ4ZDlhNjFlYjMzYjYwZDVkMzMwODRhMGVjNDQ1OGFi
15
- NTg1YmMxYTcwMzFiYTkzOWQ1NDQ3ZjhmNjQxYzAwNWE5NTZiMmI=
13
+ MzRiZjM0ZDUxNTE3OThiMzQyM2VkMDJjMjUwNjE0ZDU5MzhhYTIwYTZmNjM5
14
+ NWY5MzA5NWUzMmYzYTNiODg3OTdjMTRjZTBhNTE3YmM3MDc5OTAxODQ2MDc5
15
+ ZTQzZGQ3MWU2MmE5MWYzZDcxNGVlYWM3MGEzM2IyNDU4ZDgxYTE=
@@ -71,8 +71,6 @@ ndcs3 = [
71
71
  '661', # Fulda
72
72
  '671', # Bad Kreuznach
73
73
  '681', # Saarbrücken
74
- '700', # Personal Numbers
75
- '701', # Personal Numbers, reserved
76
74
  '711', # Stuttgart
77
75
  '721', # Karlsruhe
78
76
  '731', # Ulm
@@ -82,8 +80,6 @@ ndcs3 = [
82
80
  '771', # Donaueschingen
83
81
  '781', # Offenburg
84
82
  '791', # Schwäbisch Hall
85
- '800', # Toll-Free Numbers
86
- '801', # Toll-Free Numbers, reserved
87
83
  '811', # Hallbergmoos
88
84
  '821', # Augsburg
89
85
  '831', # Kempten
@@ -92,8 +88,6 @@ ndcs3 = [
92
88
  '861', # Traunstein
93
89
  '871', # Landshut
94
90
  '881', # Weilheim in Oberbayern
95
- '900', # Premium Rate Numbers
96
- '901', # Premium Rate Numbers, reserved
97
91
  '902', # Replacement for 0137/0138
98
92
  '906', # Donauwörth
99
93
  '911', # Nürnberg
@@ -3992,34 +3986,44 @@ ndcs4 = [
3992
3986
  '9977',
3993
3987
  '9978',
3994
3988
  ]
3995
- # mobile = [
3996
- # '150', # Group3G/Quam
3997
- # '151', # T-Mobile
3998
- # '152', # Vodafone
3999
- # '155', # E-Plus
4000
- # '156', # Mobilcom
4001
- # '157', # E-Plus
4002
- # '159', # O2
4003
- # '160', # T-Mobile
4004
- # '161', # C-Netz
4005
- # '162', # Vodafone
4006
- # '163', # E-Plus
4007
- # '164', # Cityruf
4008
- # '165', # Quix
4009
- # '166', # Telmi
4010
- # '168', # Scall
4011
- # '169', # Cityruf, Scall, Skyper (e*cityruf, e*message, e*skyper)
4012
- # '170', # T-Mobile
4013
- # '171', # T-Mobile
4014
- # '172', # Vodafone
4015
- # '173', # Vodafone
4016
- # '174', # Vodafone
4017
- # '175', # T-Mobile
4018
- # '176', # O2 Germany
4019
- # '177', # E-Plus
4020
- # '178', # E-Plus
4021
- # '179', # O2 Germany
4022
- # ]
3989
+ mobile_3digits = [
3990
+ '150', # Group3G/Quam
3991
+ '151', # T-Mobile
3992
+ '152', # Vodafone
3993
+ '155', # E-Plus
3994
+ '156', # Mobilcom
3995
+ '157', # E-Plus
3996
+ '159', # O2
3997
+ '160', # T-Mobile
3998
+ '161', # C-Netz
3999
+ '162', # Vodafone
4000
+ '163', # E-Plus
4001
+ '164', # Cityruf
4002
+ '165', # Quix
4003
+ '166', # Telmi
4004
+ '168', # Scall
4005
+ '169', # Cityruf, Scall, Skyper (e*cityruf, e*message, e*skyper)
4006
+ '170', # T-Mobile
4007
+ '171', # T-Mobile
4008
+ '172', # Vodafone
4009
+ '173', # Vodafone
4010
+ '174', # Vodafone
4011
+ '175', # T-Mobile
4012
+ '176', # O2 Germany
4013
+ '177', # E-Plus
4014
+ '178', # E-Plus
4015
+ '179', # O2 Germany
4016
+ ]
4017
+
4018
+ mobile_4digits = [
4019
+ '1520', # Vodafone
4020
+ '1521', # Lycamobile
4021
+ '1522', # Vodafone
4022
+ '1570', # vistream
4023
+ '1527', # E-Plus
4024
+ '1672', # Dolphin Telecom
4025
+ ]
4026
+
4023
4027
  service = [
4024
4028
  '12', # Innovative Services
4025
4029
  '130',
@@ -4073,19 +4077,18 @@ service = [
4073
4077
  # http://www.itu.int/dms_pub/itu-t/oth/02/02/T02020000510001PDFE.pdf
4074
4078
  # "Numbers assigned in the past, which are generally grandfathered, may be as short as five digits."
4075
4079
  #
4076
- # http://www.bundesnetzagentur.de/cln_1911/DE/Sachgebiete/Telekommunikation/Unternehmen_Institutionen/Nummerierung/Nummerierungskonzept/nummerierungskonzept_node.html
4080
+ # http://www.bundesnetzagentur.de/cln_1422/DE/Sachgebiete/Telekommunikation/Unternehmen_Institutionen/Nummerierung/Rufnummern/Rufnummern_node.html
4077
4081
  #
4078
4082
  # TODO Define lower end of last part correctly.
4079
4083
  #
4080
4084
  Phony.define do
4081
4085
  country '49',
4082
4086
  trunk('0', normalize: true) |
4083
- one_of(service) >> split(3,0) |
4084
- match(/\A(151[124567]|152[012359]|157[035789]|1590)\d*\z/) >> split(3,4) |
4085
- match(/\A(15\d)\d*\z/) >> split(3,4) |
4086
- match(/\A(1[67]\d)\d*\z/) >> split(3,1..5) | # Seite 49 [?]
4087
- one_of(ndcs2) >> split(3,2..10) | # 5-9 Stellen nach Seite 32 [?]
4088
- one_of(ndcs3) >> split(3,1..9) |
4089
- one_of(ndcs4) >> split(3,0..8) |
4090
- fixed(5) >> split(3,0..7)
4087
+ one_of(*service) >> split(3,4) |
4088
+ one_of(*mobile_4digits) >> split(3,4) |
4089
+ one_of(*mobile_3digits) >> split(4,3..4) |
4090
+ one_of(*ndcs2) >> split(3,2..10) |
4091
+ one_of(*ndcs3) >> split(3,1..9) |
4092
+ one_of(*ndcs4) >> split(3,0..8) |
4093
+ fixed(5) >> split(3,0..7)
4091
4094
  end
@@ -8,31 +8,31 @@ describe 'Phony#normalize' do
8
8
  it '#151' do
9
9
  # Normalizes, but this is a non-real case.
10
10
  #
11
- Phony.normalize('1-111-111-1111').should == '1111111111'
12
- Phony.normalize('111-111-1111', cc: '1').should == '1111111111'
11
+ Phony.normalize('1-111-111-1111').should eql '1111111111'
12
+ Phony.normalize('111-111-1111', cc: '1').should eql '1111111111'
13
13
  end
14
14
  end
15
15
 
16
16
  it 'handles the US (with cc) correctly' do
17
- Phony.normalize('+1 724 999 9999').should == '17249999999'
17
+ Phony.normalize('+1 724 999 9999').should eql '17249999999'
18
18
  end
19
19
  it 'handles the Dutch number (without US cc) correctly' do
20
- Phony.normalize('310 5552121').should == '315552121'
20
+ Phony.normalize('310 5552121').should eql '315552121'
21
21
  end
22
22
  it 'handles the US (with cc and cc option) correctly' do
23
- Phony.normalize('+1 724 999 9999', cc: '1').should == '17249999999'
23
+ Phony.normalize('+1 724 999 9999', cc: '1').should eql '17249999999'
24
24
  end
25
25
  it 'handles the US (without cc) correctly' do
26
- Phony.normalize('(310) 555-2121', cc: '1').should == '13105552121'
26
+ Phony.normalize('(310) 555-2121', cc: '1').should eql '13105552121'
27
27
  end
28
28
  it 'handles a German number with extra (0)' do
29
- Phony.normalize('+49 (0) 209 22 33 44 55').should == '4920922334455'
29
+ Phony.normalize('+49 (0) 209 22 33 44 55').should eql '4920922334455'
30
30
  end
31
31
  it 'handles a German number with extra 0' do
32
- Phony.normalize('+49 0 209 22 33 44 55').should == '4920922334455'
32
+ Phony.normalize('+49 0 209 22 33 44 55').should eql '4920922334455'
33
33
  end
34
34
  it 'handles Cambodian numbers with an extra 0' do
35
- Phony.normalize('+855012239134').should == "85512239134"
35
+ Phony.normalize('+855012239134').should eql "85512239134"
36
36
  end
37
37
  it 'should normalize a too short number' do
38
38
  Phony.normalize('+972').should eql '972'
@@ -332,6 +332,9 @@ describe 'plausibility' do
332
332
  Phony.plausible?('+49 31234 123456').should be_true
333
333
  Phony.plausible?('+49 7141 12345670').should be_true
334
334
  Phony.plausible?('+49 1609 1234567').should be_true # Bug: https://github.com/floere/phony/issues/146
335
+ Phony.plausible?('+49 800 1234567').should be_true
336
+ Phony.plausible?('+49 1805 878323').should be_true
337
+
335
338
  # Following tests implement specifications from
336
339
  # http://www.bundesnetzagentur.de/SharedDocs/Downloads/DE/Sachgebiete/Telekommunikation/Unternehmen_Institutionen/Nummerierung/Rufnummern/ONRufnr/NummernplanOrtsnetzrufnummern.pdf?__blob=publicationFile&v=2 (04.24.2014)
337
340
  # Page 3
@@ -507,7 +510,7 @@ describe 'plausibility' do
507
510
  it_is_correct_for 'Gabonese Republic', :samples => '+241 1 627 739'
508
511
  it_is_correct_for 'Gambia', :samples => '+220 989 5148'
509
512
  it_is_correct_for 'Germany', :samples => [
510
- '+4915775368708'
513
+ '+49 157 753 6870'
511
514
  ]
512
515
  it_is_correct_for 'Georgia', :samples => ['+995 220 123 45',
513
516
  '+995 32 123 4567',
@@ -207,18 +207,22 @@ describe 'country descriptions' do
207
207
  it_splits '995596123456', %w(995 596 123 456)
208
208
  end
209
209
  describe 'Germany' do
210
- it_splits '493038625454', ['49', '30', '386', '25454'] # Berlin
211
- it_splits '4932221764542', ['49', '32', '221', '764542'] # Non-Geographical
212
- it_splits '4922137683323', ['49', '221', '376', '83323'] # Cologne
213
- it_splits '497614767676', ['49', '761', '476', '7676'] # Freiburg im Breisgau
214
- it_splits '4921535100', ['49', '2153', '510', '0'] # Nettetal-Lobberich
215
- it_splits '493434144602', ['49', '34341', '446', '02'] # Geithain
216
- it_splits '491805878323', ['49', '180', '587', '8323'] # Service number
217
- it_splits '491815878323', ['49', '181', '587', '8323'] # Service number
218
- it_splits '4915111231234', ['49', '1511', '123', '1234'] # Mobile number
210
+ it_splits '493038625454', ['49', '30', '386', '25454'] # Berlin
211
+ it_splits '4932221764542', ['49', '32', '221', '764542'] # Non-Geographical
212
+ it_splits '4922137683323', ['49', '221', '376', '83323'] # Cologne
213
+ it_splits '497614767676', ['49', '761', '476', '7676'] # Freiburg im Breisgau
214
+ it_splits '4921535100', ['49', '2153', '510', '0'] # Nettetal-Lobberich
215
+ it_splits '493434144602', ['49', '34341', '446', '02'] # Geithain
216
+
217
+ it_splits '491805878323', ['49', '180', '587', '8323'] # Service number
218
+ it_splits '491815878323', ['49', '181', '587', '8323'] # Service number
219
+ it_splits '498001234567', ['49', '800', '123', '4567'] # Service number
220
+
221
+ it_splits '4915111231234', ['49', '151', '1123', '1234'] # Mobile number
222
+ it_splits '4915771231234', ['49', '157', '7123', '1234'] # Mobile number
223
+ it_splits '491601234567', ['49', '160', '1234', '567'] # Mobile number
224
+ it_splits '4916312345678', ['49', '163', '1234', '5678'] # Mobile number
219
225
  it_splits '4915211231234', ['49', '1521', '123', '1234'] # Mobile number
220
- it_splits '4915771231234', ['49', '1577', '123', '1234'] # Mobile number
221
- it_splits '4916312312345', ['49', '163', '123', '12345'] # Mobile number
222
226
  end
223
227
  describe 'Ghana' do
224
228
  it_splits '233302123456', ['233', '30', '212', '3456'] # Mobile Vodafone, Accra
@@ -6,8 +6,8 @@ describe Phony do
6
6
 
7
7
  describe 'regression' do
8
8
  it 'best effort #152' do
9
- described_class.split('39694805123').should == ['39', '694805123', []]
10
- described_class.format('39694805123').should == '+39 694805123 '
9
+ described_class.split('39694805123').should eql ['39', '694805123', []]
10
+ described_class.format('39694805123').should eql '+39 694805123 '
11
11
  end
12
12
  end
13
13
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phony
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.3
4
+ version: 2.5.4
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-10-05 00:00:00.000000000 Z
11
+ date: 2014-10-14 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: ! 'Fast international phone number (E164 standard) normalizing, splitting
14
14
  and formatting. Lots of formatting options: International (+.., 00..), national