phony 2.8.3 → 2.8.4
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 +4 -4
- data/lib/phony/countries/austria.rb +1 -1
- data/lib/phony/countries/italy.rb +1 -1
- data/lib/phony/countries.rb +12 -4
- data/spec/functional/plausibility_spec.rb +32 -1
- data/spec/lib/phony/countries_spec.rb +17 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5b20a704d057c3295d795f4dfcf235a5bf2b1220
|
4
|
+
data.tar.gz: fb1ffb2faf783720497b8d3f758edd0183f2bc7e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3abcaf915fec92569f7ea4c74d72aa76e685341dafeeb238c0434d9a05e22c30ce787e965bc0b79a050e074c672dc7bf0fa9686c8fe852d94662bbd564423a70
|
7
|
+
data.tar.gz: 4dca85b010dc5009d7e698fb325d785781546096f2943887ffaf203d9e4791c3d123abebcf1a3e2540a9ee039ac4649a2be9546a90c1ac7f9179f6ca7deaa304
|
@@ -89,7 +89,7 @@ Phony.define do
|
|
89
89
|
one_of(corporate) >> split(5..5) |
|
90
90
|
one_of(ndcs) >> split(6..6) |
|
91
91
|
one_of('663') >> split(6..6) | # 6 digit mobile.
|
92
|
-
one_of(mobile) >> split(4,3..
|
92
|
+
one_of(mobile) >> split(4,3..9) |
|
93
93
|
one_of(mobile_2digit) >> split(7..7) | # Separate as mobile contains 676 - 67 violates the prefix rule.
|
94
94
|
fixed(4) >> split(7..7)
|
95
95
|
end
|
@@ -112,7 +112,7 @@ service = [ # Not exhaustive.
|
|
112
112
|
Phony.define do
|
113
113
|
country '39', trunk('0', :normalize => false) |
|
114
114
|
one_of(*service) >> split(3,3) |
|
115
|
-
one_of(*mobile) >> split(3,4) |
|
115
|
+
one_of(*mobile) >> split(3,4,-1..1) |
|
116
116
|
one_of(*ndcs_2digit) >> split(4,4) |
|
117
117
|
one_of(*ndcs_3digit) >> split(6..7) |
|
118
118
|
one_of(*ndcs_4digit) >> split(3,3)
|
data/lib/phony/countries.rb
CHANGED
@@ -63,7 +63,7 @@ Phony.define do
|
|
63
63
|
one_of(%w(901 909)) >> split(3,4) | # premium rate
|
64
64
|
one_of(%w(21 22 23 24 25 26 27 28)) >> split(4,4) |
|
65
65
|
one_of('50') >> split(4,4) | # VPN
|
66
|
-
|
66
|
+
match(/^(69\d)\d+$/) >> split(3,4) | # mobile, pager
|
67
67
|
one_of('70') >> split(4,4) | # universal access
|
68
68
|
fixed(4) >> split(6) # 3-digit NDCs
|
69
69
|
|
@@ -612,8 +612,8 @@ Phony.define do
|
|
612
612
|
# Estonia
|
613
613
|
#
|
614
614
|
country '372',
|
615
|
-
match(/^(5\d\d\d)\d+$/) >> split(4) | # Mobile
|
616
|
-
match(/^((?:70|8[12])\d\d)\d+$/) >> split(4)
|
615
|
+
match(/^(5\d\d\d)\d+$/) >> split(3..4) | # Mobile
|
616
|
+
match(/^((?:70|8[12])\d\d)\d+$/) >> split(4) | # Mobile
|
617
617
|
fixed(3) >> split(4) # 3-digit NDCs
|
618
618
|
|
619
619
|
# country '373' # Moldova, see special file
|
@@ -652,7 +652,15 @@ Phony.define do
|
|
652
652
|
|
653
653
|
# country '385' # Croatia, see special file.
|
654
654
|
|
655
|
-
|
655
|
+
# Slovenia
|
656
|
+
# http://www.itu.int/oth/default.aspx?lang=en&parent=T02020000BE
|
657
|
+
# http://en.wikipedia.org/wiki/Telephone_numbers_in_Slovenia
|
658
|
+
country '386',
|
659
|
+
trunk('0') |
|
660
|
+
one_of('30','31','40','41','51','64','65','66','67','68','69','70','71') >> split(3,3) | # Mobile
|
661
|
+
one_of('1','2','3','4','5','7') >> split(3,4) | # Ljubljana, Maribor, Celje, Kranj, Nova Gorica, Novo mesto
|
662
|
+
fixed(3) >> split(2,3) # catchall
|
663
|
+
|
656
664
|
country '387', trunk('0') | fixed(2) >> split(3,2,2) # Bosnia and Herzegovina
|
657
665
|
country '388', trunk('0') | fixed(2) >> split(3,2,2) # Group of countries, shared code
|
658
666
|
country '389', trunk('0') | fixed(2) >> split(3,2,2) # The Former Yugoslav Republic of Macedonia
|
@@ -148,6 +148,11 @@ describe 'plausibility' do
|
|
148
148
|
Phony.plausible?('+43 699 00000000').should be_true
|
149
149
|
# 663 mobile numbers have 6 digits
|
150
150
|
Phony.plausible?('+43 663 000000').should be_true
|
151
|
+
# mobile numbers can have from 7 to 10 digits in the subscriber number
|
152
|
+
Phony.plausible?('+43 664 1234 567').should be_true
|
153
|
+
Phony.plausible?('+43 664 1234 5678').should be_true
|
154
|
+
Phony.plausible?('+43 664 1234 56789').should be_true
|
155
|
+
Phony.plausible?('+43 664 1234 567890').should be_true
|
151
156
|
end
|
152
157
|
|
153
158
|
it "is correct for Belgian numbers" do
|
@@ -304,6 +309,22 @@ describe 'plausibility' do
|
|
304
309
|
Phony.plausible?('+45 44 55 22 33').should be_true
|
305
310
|
end
|
306
311
|
|
312
|
+
it "is correct for Estonia" do
|
313
|
+
# the 5xxxx mobile numbers can be 7 or 8 digits (ndc + subscriber) long
|
314
|
+
Phony.plausible?('+372 532 12345').should be_true
|
315
|
+
Phony.plausible?('+372 532 1234').should be_true
|
316
|
+
Phony.plausible?('+372 532 123').should be_false
|
317
|
+
Phony.plausible?('+372 532 123456').should be_false
|
318
|
+
|
319
|
+
# the 81x/82x are only 8 digits
|
320
|
+
Phony.plausible?('+372 822 12345').should be_true
|
321
|
+
Phony.plausible?('+372 812 12345').should be_true
|
322
|
+
Phony.plausible?('+372 822 1234').should be_false
|
323
|
+
Phony.plausible?('+372 812 1234').should be_false
|
324
|
+
Phony.plausible?('+372 822 123').should be_false
|
325
|
+
Phony.plausible?('+372 822 123456').should be_false
|
326
|
+
end
|
327
|
+
|
307
328
|
it 'is correct for Netherlands' do
|
308
329
|
Phony.plausible?('+31 6 12 34 56 78').should be_true
|
309
330
|
Phony.plausible?('+31 6 12 34 56 7').should be_false
|
@@ -384,8 +405,12 @@ describe 'plausibility' do
|
|
384
405
|
Phony.plausible?('+39 0471 123 456').should be_true
|
385
406
|
|
386
407
|
# Mobile
|
387
|
-
Phony.plausible?('+39 335 123 4567').should be_true
|
388
408
|
Phony.plausible?('+39 335 123').should be_false
|
409
|
+
Phony.plausible?('+39 335 123 45').should be_false
|
410
|
+
Phony.plausible?('+39 335 123 456').should be_true
|
411
|
+
Phony.plausible?('+39 335 123 4567').should be_true
|
412
|
+
Phony.plausible?('+39 335 123 45678').should be_true
|
413
|
+
Phony.plausible?('+39 335 123 456789').should be_false
|
389
414
|
end
|
390
415
|
|
391
416
|
it 'is correct for Malaysia' do
|
@@ -429,6 +454,12 @@ describe 'plausibility' do
|
|
429
454
|
Phony.plausible?('796030123451').should be_false # too long
|
430
455
|
end
|
431
456
|
|
457
|
+
it "is correct for Slovenian numbers" do
|
458
|
+
Phony.plausible?('+386 41 123 456').should be_true
|
459
|
+
Phony.plausible?('+386 1 320 1234').should be_true
|
460
|
+
Phony.plausible?('+386 41 123 4567').should be_false
|
461
|
+
end
|
462
|
+
|
432
463
|
# TODO: more needs to be done here
|
433
464
|
#
|
434
465
|
it "is correct for Swiss numbers" do
|
@@ -45,6 +45,12 @@ describe 'country descriptions' do
|
|
45
45
|
it_splits '4366900000000', %w( 43 669 0000 0000 ) # Mobile
|
46
46
|
it_splits '433161234567891', %w( 43 316 1234567891 ) # Graz
|
47
47
|
it_splits '432164123456789', %w( 43 2164 123456789 ) # Rohrau
|
48
|
+
|
49
|
+
# mobile numbers can have from 7 to 10 digits in the subscriber number
|
50
|
+
it_splits '436641234567', %w( 43 664 1234 567 )
|
51
|
+
it_splits '4366412345678', %w( 43 664 1234 5678 )
|
52
|
+
it_splits '43664123456789', %w( 43 664 1234 56789 )
|
53
|
+
it_splits '436641234567890', %w( 43 664 1234 567890 )
|
48
54
|
end
|
49
55
|
|
50
56
|
describe 'Australia' do
|
@@ -188,7 +194,8 @@ describe 'country descriptions' do
|
|
188
194
|
it_splits '3728001234', ['372', '800', '1234'] # Freephone
|
189
195
|
it_splits '37281231234', ['372', '8123', '1234'] # Mobile
|
190
196
|
it_splits '37282231234', ['372', '8223', '1234'] # Mobile
|
191
|
-
it_splits '
|
197
|
+
it_splits '37252212345', ['372', '5221', '2345'] # Mobile
|
198
|
+
it_splits '3725221234', ['372', '5221', '234'] # Mobile
|
192
199
|
it_splits '37270121234', ['372', '7012', '1234'] # Premium
|
193
200
|
end
|
194
201
|
describe 'Finland' do
|
@@ -243,7 +250,7 @@ describe 'country descriptions' do
|
|
243
250
|
it_splits '302142345678', %w(30 21 4234 5678)
|
244
251
|
it_splits '302442345678', %w(30 24 4234 5678)
|
245
252
|
it_splits '305034571234', %w(30 50 3457 1234)
|
246
|
-
it_splits '306901234567', %w(30
|
253
|
+
it_splits '306901234567', %w(30 690 123 4567)
|
247
254
|
it_splits '307001234567', %w(30 70 0123 4567)
|
248
255
|
it_splits '308001001234', %w(30 800 100 1234)
|
249
256
|
it_splits '308011001234', %w(30 801 100 1234)
|
@@ -351,7 +358,9 @@ describe 'country descriptions' do
|
|
351
358
|
it_splits '9701700123123', ['970', '1', '700', '123', '123'] # Cable Phone Services
|
352
359
|
end
|
353
360
|
describe 'Italy' do
|
354
|
-
it_splits '
|
361
|
+
it_splits '39348695281', ['39', '348', '695', '281'] # Mobile (6-digit subscriber no. - rare, but still used)
|
362
|
+
it_splits '393486952812', ['39', '348', '695', '2812'] # Mobile (7-digit subscriber no. - common)
|
363
|
+
it_splits '3934869528123',['39', '348', '695', '2812', '3'] # Mobile (8-digit subscriber no - new)
|
355
364
|
it_splits '393357210488', ['39', '335', '721', '0488'] # Mobile
|
356
365
|
it_splits '393248644272', ['39', '324', '864', '4272'] # Mobile
|
357
366
|
it_splits '390612341234', ['39', '06', '1234', '1234'] # Roma
|
@@ -570,6 +579,11 @@ describe 'country descriptions' do
|
|
570
579
|
it { Phony.split('421371234567').should == ['421', '37', '1234567'] } # Nitra / Other
|
571
580
|
end
|
572
581
|
|
582
|
+
describe 'Slovenia' do
|
583
|
+
it { Phony.split('38651234567').should == ['386', '51', '234', '567'] } # Mobile
|
584
|
+
it { Phony.split('38611234567').should == ['386', '1', '123', '4567'] } # LJUBLJANA
|
585
|
+
end
|
586
|
+
|
573
587
|
describe 'Spain' do
|
574
588
|
it_splits '34600123456', ['34', '600', '123', '456'] # Mobile
|
575
589
|
it_splits '34900123456', ['34', '900', '123', '456'] # Special
|
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.8.
|
4
|
+
version: 2.8.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-
|
11
|
+
date: 2014-12-02 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
|