phony 2.18.6 → 2.18.11

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c8afd3ed939496b1ce35893209cd138097885e20c7f0add0b78559acd00f74b6
4
- data.tar.gz: 22578a1536cf7d0b39d91420f13e210e5cfac952a7cc2472886eaace2a2ca646
3
+ metadata.gz: 0dec25f641694c9f28c6d38038e650ee1353ffe7d7756b11f3675a8d2e2edb5d
4
+ data.tar.gz: 46c14ea65fd3659bd58ae8f6764c723c0647b3bb172b535a1cfc0753b44663c6
5
5
  SHA512:
6
- metadata.gz: 9e8c2367409ffce25c1b277ddbe7f20584e1a5a144f681816dc348348fb36eecda6978a14f66f824dd2776b146d83e3890646d8acd75ddf9a19f5c37aafd16d5
7
- data.tar.gz: 50a8c60cdbb8aaf2692e54726a03e3fb67e79c37e3c2bfd6669657c3b9753f856947d094168cce2486f4119ac36b56db49855d0a5e56dba7c1c4ac6d3e3182c3
6
+ metadata.gz: 25fa4f7c4212f45a77cd98bc18c978048d11579de5bb70680108a7e84cbe91a2ffe8935a94a9bbd4f78e9e9a32b675b341ddcaa4367666a0f7d386069352e3a8
7
+ data.tar.gz: 26b570a3ddbe060b034841ffad3ecf7548d2ed74644e6a56b8790582c66b2144610e99c8bb817ecdcbdd4ca92acc25f19077df08bc2ccc73335bbf8c2fb3dedf
@@ -386,14 +386,19 @@ Phony.define do
386
386
  country '233', fixed(2) >> split(3,4)
387
387
 
388
388
  # Nigeria
389
- # Wikipedia says 3 4 split, many local number with no splitting
389
+ # 3 4 split for mobile and 1 digit NDC, 3 2 or 3 3 otherwise
390
+ # Many local numbers with no splitting
390
391
  #
391
- # mobile telephony number allocation taken from: http://www.ncc.gov.ng/index.php?option=com_content&view=article&id=113&Itemid=102
392
+ # mobile telephony number allocation taken from:
393
+ # https://www.ncc.gov.ng/technical-regulation/standards/numbering and
394
+ # https://www.itu.int/oth/T020200009C/en
392
395
  country '234',
393
- match(/^([7-9]0\d)\d+$/) >> split(3,4) | # Mobile
394
- match(/^(81\d)\d+$/) >> split(3,4) | # Mobile
395
- one_of('1', '2', '9') >> split(3,4) | # Lagos, Ibadan and Abuja
396
- fixed(2) >> split(3,4) # 2-digit NDC
396
+ match(/^([7-9]0\d)\d+$/) >> split(3,4) | # Mobile
397
+ match(/^(81\d)\d+$/) >> split(3,4) | # Mobile
398
+ one_of('1', '2') >> split(3,3..4) | # Lagos, Ibadan
399
+ one_of('9') >> split(3,4) | # Abuja
400
+ one_of((30..79).map(&:to_s)) >> split(3,2..3) | # 2-digit NDC
401
+ one_of(%w(82 83 84 85 86 87 88 89)) >> split(3,3) # 2-digit NDC
397
402
 
398
403
  country '235', none >> split(4,4) # Chad http://www.wtng.info/wtng-235-td.html
399
404
  country '236', none >> split(4,4) # Central African Republic http://www.wtng.info/wtng-236-cf.html
@@ -731,11 +736,12 @@ Phony.define do
731
736
  # Monaco
732
737
  #
733
738
  country '377',
734
- one_of('6') >> split(2,2,2,2) | # mobile
739
+ one_of('6') >> split(2,2,2,2) | # mobile
735
740
  fixed(2) >> split(2,2,2)
736
741
 
737
742
  # San Marino
738
743
  country '378',
744
+ trunk('', :normalize => false) |
739
745
  none >> matched_split(
740
746
  /\A\d{6}\z/ => [3,3],
741
747
  /\A\d+\z/ => [3,3,4]
@@ -85,7 +85,7 @@ service = [
85
85
  '939'
86
86
  ]
87
87
 
88
- # https://www.rtr.at/en/tk/E129/2312_Austrian_Numbering_Plan_2011-03-30.pdf
88
+ # https://www.rtr.at/en/tk/E129/Austrian_Numbering_Plan_2011-03-30.pdf
89
89
  #
90
90
  # TODO Add more details.
91
91
  #
@@ -97,7 +97,7 @@ Phony.define do
97
97
  one_of('800') >> split(6..10) | # Free number length is 9..13
98
98
  one_of(corporate_2digit) >> split(3..11) | # Corporate number length is 5..13
99
99
  one_of(corporate) >> split(2..10) | # Corporate number length is 5..13
100
- one_of(ndcs) >> split(6..10) |
100
+ one_of(ndcs) >> split(5..10) |
101
101
  one_of('663') >> split(6..8) | # 6..8 digit mobile.
102
102
  one_of(mobile) >> split(4,3..9) |
103
103
  one_of(mobile_2digit) >> split(7..7) | # Separate as mobile contains 676 - 67 violates the prefix rule.
@@ -4090,7 +4090,7 @@ Phony.define do
4090
4090
  one_of(*service) >> split(3,1..9) |
4091
4091
  one_of(*mobile_4digits) >> split(3,4) |
4092
4092
  one_of(*mobile_3digits) >> split(4,3..4) |
4093
- one_of(*ndcs2) >> split(3,2..10) |
4093
+ one_of(*ndcs2) >> split(3,1..10) |
4094
4094
  one_of(*ndcs3) >> split(3,1..9) |
4095
4095
  one_of(*ndcs4) >> split(3,0..8) |
4096
4096
  fixed(5) >> split(3,0..7)
@@ -403,7 +403,7 @@ ndcs_with_5_subscriber_numbers = %w(
403
403
 
404
404
  Phony.define do
405
405
  country '81',
406
- trunk('0') |
406
+ trunk('0', :normalize => false, :format => true, :split => true) |
407
407
  one_of('20', '50', '60', '70', '90') >> split(4,4) | # mobile, VoIP telephony
408
408
  one_of(ndcs_with_5_subscriber_numbers) >> split(1,4) |
409
409
  one_of(ndcs_with_6_subscriber_numbers) >> split(2,4) |
@@ -46,7 +46,8 @@ describe 'plausibility' do
46
46
  end
47
47
 
48
48
  context 'specific countries' do
49
- it_is_correct_for 'Austria', :samples => '+43 720 116987' # VoIP
49
+ it_is_correct_for 'Austria', :samples => ['+43 720 116987', # VoIP
50
+ '+43 463 12345'] # Klagenfurt
50
51
  it_is_correct_for 'Bosnia and Herzegovina', :samples => ['+387 66 666 666',
51
52
  '+387 37 123 456',
52
53
  '+387 33 222 111']
@@ -251,6 +252,7 @@ describe 'plausibility' do
251
252
  it_is_correct_for 'Gabonese Republic', :samples => '+241 1 627 739'
252
253
  it_is_correct_for 'Gambia', :samples => '+220 989 5148'
253
254
  it_is_correct_for 'Germany', :samples => [
255
+ '+49 69 155 1',
254
256
  '+49 1577 536 8701'
255
257
  ]
256
258
  it_is_correct_for 'Georgia', :samples => ['+995 220 123 45',
@@ -353,6 +355,11 @@ describe 'plausibility' do
353
355
  end
354
356
  it_is_correct_for 'Nicaragua', :samples => '+505 12 345 678'
355
357
  it_is_correct_for 'Niger', :samples => '+227 1234 5678'
358
+ it_is_correct_for 'Nigeria', :samples => ['+234 807 059 1111',
359
+ '+234 811 234 5678',
360
+ '+234 64 830 00',
361
+ '+234 1 280 444',
362
+ '+234 85 123 456']
356
363
  it_is_correct_for 'Niue', :samples => '+683 3791'
357
364
  it_is_correct_for 'Oman', :samples => ['+968 24 423 123',
358
365
  '+968 25 423 123']
@@ -1103,6 +1103,8 @@ describe 'country descriptions' do
1103
1103
  describe 'Nigeria' do
1104
1104
  it_splits '23411231234', %w(234 1 123 1234) # Lagos
1105
1105
 
1106
+ it_splits '23445123456', %w(234 45 123 456) # Ogoja
1107
+
1106
1108
  # mobile numbers
1107
1109
  it_splits '2347007661234', %w(234 700 766 1234)
1108
1110
  it_splits '2347017661234', %w(234 701 766 1234)
@@ -147,9 +147,12 @@ describe Phony::CountryCodes do
147
147
  it "should format luxembourgian numbers" do
148
148
  @countries.formatted('35227855', :format => :international).should eql '+352 27 85 5'
149
149
  end
150
- it "should format nigerian numbers" do
150
+ it "should format nigerian lagosian numbers" do
151
151
  @countries.formatted('23414480000', :format => :international).should eql '+234 1 448 0000'
152
152
  end
153
+ it "should format nigerian beninese numbers" do
154
+ @countries.formatted('23452123456', :format => :international).should eql '+234 52 123 456'
155
+ end
153
156
  it "should format nigerian mobile numbers" do
154
157
  @countries.formatted('2347061234567', :format => :international).should eql '+234 706 123 4567'
155
158
  end
@@ -23,7 +23,7 @@ describe Phony::Country do
23
23
  end
24
24
 
25
25
  context 'regression' do
26
- describe 'iceland' do
26
+ describe 'Iceland' do
27
27
  let(:country) do
28
28
  national_splitter = Phony::NationalSplitters::None.instance_for
29
29
  local_splitter = Phony::LocalSplitters::Fixed.instance_for [3, 4]
@@ -35,6 +35,14 @@ describe Phony::Country do
35
35
  country.split('112').should == [nil, false, '112']
36
36
  end
37
37
  end
38
+ describe 'San Marino' do
39
+ it 'normalizes correctly' do
40
+ Phony.normalize('+3780549903549').should == '3780549903549'
41
+ end
42
+ xit 'automatically adds the sole NC' do
43
+ Phony.normalize('+378903549').should == '3780549903549'
44
+ end
45
+ end
38
46
  end
39
47
 
40
48
  context "without special cases (with switzerland)" do
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.18.6
4
+ version: 2.18.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Hanke
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-09-04 00:00:00.000000000 Z
11
+ date: 2019-12-15 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
@@ -114,8 +114,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
114
114
  - !ruby/object:Gem::Version
115
115
  version: '0'
116
116
  requirements: []
117
- rubyforge_project:
118
- rubygems_version: 2.7.6
117
+ rubygems_version: 3.0.3
119
118
  signing_key:
120
119
  specification_version: 4
121
120
  summary: Fast international phone number (E164 standard) normalizing, splitting and