phony 2.18.13 → 2.18.19

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: 7e14e2c7d06393753fce0427aa20663f54f193738bfd16b540a36e76d5ba2acc
4
- data.tar.gz: 3d88d8b49030814139b5bcc32f6e527d8cf6320cd94276a24e9d80518dc00f28
3
+ metadata.gz: 191311d0c0169c0df4dd8b25dd66237bb90daf37806631092c4fe73881fade0c
4
+ data.tar.gz: f9c030830f9303fead7730266cc3bf08a3a260a1f34db0e81f47105cd9d576e4
5
5
  SHA512:
6
- metadata.gz: 1fa00cd7d9c0e5610eece54633e47f5af65996a35697b564da8b021e5280139c8151544c9356716db899c33e89aca258d7c150e95d01d6e01069baf122908797
7
- data.tar.gz: b3de10ec071c5db69937bc2bd169def6f56ab3a127d2f7d18945438b1da2fb2cd6e022ecb74db40ec1a2efe27e76b2b379ec96ac6b3dbd041789d24e5684a29b
6
+ metadata.gz: a36bf0ccdbfae65c24d192f6ed89b39a549643028bab3a14309f8ec9473b5c590dc58699dd26a913e530175fe03e2334ce0920bedffc2069a700588a834c8d18
7
+ data.tar.gz: 9d715c474e64dc92cf1d8de778f91676d4ab791f147f7a34694783dd64e737e751bf42cab231fd337a608b7527387770c9bca51a9cc992689c56cf8f67755aa0
@@ -257,6 +257,7 @@ Phony.define do
257
257
  trunk('0') |
258
258
  # 7/10 digits for area code '2'.
259
259
  match(/\A(2)\d{10}\z/) >> split(10) |
260
+ match(/\A(2)\d{8}\z/) >> split(8) |
260
261
  one_of('2') >> split(7) |
261
262
  # mobile
262
263
  match(/\A([89]\d\d)\d{7}\z/) >> split(7) |
@@ -351,13 +352,13 @@ Phony.define do
351
352
 
352
353
  # Côte d'Ivoire
353
354
  # http://www.wtng.info/wtng-225-ci.html
354
- # http://www.itu.int/dms_pub/itu-t/oth/02/02/T02020000310001PDFE.pdf
355
+ # https://www.itu.int/dms_pub/itu-t/oth/02/02/T02020000310006PDFE.pdf
355
356
  # http://en.wikipedia.org/wiki/Telephone_numbers_in_Ivory_Coast
356
357
  #
357
358
  # There is no trunk code for this country and several of the mobile prefixes start with 0
358
359
  country '225',
359
360
  trunk('', :normalize => false) |
360
- fixed(2) >> split(2,2,2)
361
+ fixed(2) >> split(2,2,2,2)
361
362
 
362
363
  country '226', none >> split(4,4) # Burkina Faso http://www.wtng.info/wtng-226-bf.html
363
364
  country '227', none >> split(4,4) # Niger http://www.wtng.info/wtng-227-ne.html
@@ -396,6 +397,7 @@ Phony.define do
396
397
  country '234',
397
398
  match(/^([7-9]0\d)\d+$/) >> split(3,4) | # Mobile
398
399
  match(/^(81\d)\d+$/) >> split(3,4) | # Mobile
400
+ match(/^(91\d)\d+$/) >> split(3,4) | # Mobile
399
401
  one_of('1', '2') >> split(3,3..4) | # Lagos, Ibadan
400
402
  one_of('9') >> split(3,4) | # Abuja
401
403
  one_of((30..79).map(&:to_s)) >> split(3,2..3) | # 2-digit NDC
@@ -408,7 +410,9 @@ Phony.define do
408
410
  country '239', fixed(1) >> split(3,3) # Sao Tome and Principe, http://www.wtng.info/wtng-239-st.html
409
411
 
410
412
  country '240', none >> split(3,3,3) # Equatorial Guinea
411
- country '241', fixed(1) >> split(3,3) # Gabonese Republic http://www.wtng.info/wtng-241-ga.html
413
+ country '241',
414
+ match(/^(\d)\d{6}$/) >> split(3,3) | # Gabonese Republic http://www.wtng.info/wtng-241-ga.html
415
+ match(/^(\d\d)\d{6}$/) >> split(2,2,2) # 2019 update https://en.wikipedia.org/wiki/Telephone_numbers_in_Gabon
412
416
  country '242', # Congo http://www.wtng.info/wtng-242-cg.html
413
417
  trunk('', :normalize => false) |
414
418
  none >> split(4,5)
@@ -71,6 +71,7 @@ six_digit_extended_range_mobile_prefixes = [
71
71
  ]
72
72
 
73
73
  seven_digit_mobile_prefixes = [
74
+ '18', # Seatel
74
75
  '31', # Metfone
75
76
  '38', # CooTel
76
77
  '39', # EMAXX
@@ -85,10 +86,6 @@ variable_length_extended_range_mobile_prefixes = [
85
86
  '12' # Mobitel
86
87
  ]
87
88
 
88
- mobile_prefixes_with_variable_length = [
89
- '18' # Seatel
90
- ]
91
-
92
89
  six_digit_total_single_digit_fixed_line_prefixes = [
93
90
  '2', # Telecom Cambodia
94
91
  '3', # Mobitel
@@ -126,7 +123,6 @@ seven_digit_total_double_digit_fixed_line_prefixes = [
126
123
 
127
124
  Phony.define do
128
125
  country '855', trunk('0', :normalize => true) |
129
- one_of(mobile_prefixes_with_variable_length) >> matched_split(/^9/ => [3, 4], /^[2-8]/ => [3, 3]) |
130
126
  one_of(variable_length_extended_range_mobile_prefixes) >> matched_split(/^1/ => [3, 4], /^[2-9]/ => [3, 3]) |
131
127
  one_of(six_digit_mobile_prefixes) >> matched_split(/^[2-9]/ => [3, 3]) |
132
128
  one_of(six_digit_extended_range_mobile_prefixes) >> matched_split(/^[1-9]/ => [3, 3]) |
@@ -28,5 +28,8 @@ Phony.define do
28
28
  one_of(service) >> split(8) |
29
29
  one_of(mobile) >> split(4,4) |
30
30
  one_of(ndcs) >> split(4,4) |
31
- fixed(3) >> split(4,4)
31
+ fixed(3) >> matched_split(
32
+ /\A\d{7}\z/ => [3,4],
33
+ /\A\d{8}\z/ => [4,4]
34
+ )
32
35
  end
@@ -9,14 +9,14 @@
9
9
  #
10
10
  # References:
11
11
  # http://www.comreg.ie/_fileupload/publications/ComReg03147.pdf (2003)
12
+ # https://www.comreg.ie/media/dlm_uploads/2015/12/ComReg0804.pdf (2008)
12
13
  # http://www.comreg.ie/licensing_and_services/area_code_maps.552.1040.html
13
14
  # http://en.wikipedia.org/wiki/Telephone_numbers_in_the_Republic_of_Ireland
14
15
  #
15
16
  ndcs_with_5_subscriber_digits = [
16
- '22', '23', '24', '25', '26', '27', '28', '29', # Mallow, Bandon, Youghal, Fermoy, Macroom, Bantry, Skibbereen, Kanturk
17
+ '22', '24', '25', '26', '27', '28', '29', # Mallow, Youghal, Fermoy, Macroom, Bantry, Skibbereen, Kanturk
17
18
  '402', # Arklow
18
19
  '404', # Wicklow
19
- '43', # Longford, Granard
20
20
  '47', # Monaghan, Clones
21
21
  '48', # Northern Ireland
22
22
  '502', # Portlaoise, Abbeyleix
@@ -24,12 +24,10 @@ ndcs_with_5_subscriber_digits = [
24
24
  '505', # Roscrea
25
25
  '506', # Tullamore
26
26
  '509', # Bin-
27
- '52', # Killenaule
28
27
  '54', # Legacy Ferns, Enniscorthy
29
28
  '55', # Legacy Gorey
30
29
  '62', # Tipperary, Cashel
31
30
  '63', # Charleville
32
- '64', # Killarney, Rathmore
33
31
  '67', # Nenagh
34
32
  '68', # Listowel
35
33
  '69', # Newcastle West
@@ -47,15 +45,19 @@ ndcs_with_6_subscriber_digits = [
47
45
  ndcs_with_7_subscriber_digits = [
48
46
  '1', # Dublin
49
47
  '21', # Cork, Coachford, Kinsale
48
+ '23', # Bandon
50
49
  '41', # Ardee
51
50
  '42', # Dundalk, Carrickmacross, Castleblaney
51
+ '43', # Longford, Granard
52
52
  '44', # Mullingar, Castlepollard, Tyrellspass
53
53
  '46', # Navan, Kells, Trim, Enfield, Edenderry
54
54
  '49', # Cavan, Cootehill, Oldcastle, Belturbet
55
+ '52', # Killenaule
55
56
  '53', # Wexford, Enniscorthy, Ferns, Gorey, Craanford
56
57
  '56', # Kilkenny, Castlecomer
57
58
  '58', # Dungarvan
58
59
  '59', # Carlow, Muine Bheag, Athy, Baltinglass
60
+ '64', # Killarney, Rathmore
59
61
  '65', # Ennistymon, Kilrush
60
62
  '66', # Tralee, Dingle, Killorglin, Cahirciveen
61
63
  '71', # Sligo, Manorhamilton, Carrick-on-Shannon
@@ -104,6 +104,7 @@ mobile = [
104
104
  '84', # Vinaphone
105
105
  '85', # Vinaphone
106
106
  '86', # Viettel
107
+ '87', # Itelecom
107
108
  '88', # Vinaphone
108
109
  '89', # MobiFone,
109
110
  '90', # MobiFone
@@ -192,7 +192,7 @@ describe 'plausibility' do
192
192
  Phony.plausible?('+385 60 12 345').should be_truthy # Premium rate
193
193
  Phony.plausible?('+385 62 123 456').should be_truthy # Premium, personal and UAN
194
194
  end
195
- it_is_correct_for "Côte d'Ivoire", :samples => '+225 9358 8764'
195
+ it_is_correct_for "Côte d'Ivoire", :samples => '+225 01 9358 8764'
196
196
  it_is_correct_for 'Democratic Republic of Timor-Leste', :samples => ['+670 465 7886', '+670 7465 7886']
197
197
  it_is_correct_for 'Democratic Republic of the Congo', :samples => '+243 80 864 9794'
198
198
  it_is_correct_for 'Diego Garcia', :samples => '+246 123 7686'
@@ -249,7 +249,14 @@ describe 'plausibility' do
249
249
  end
250
250
  it_is_correct_for 'French Guiana (French Department of)', :samples => '+594 594 123 456'
251
251
  it_is_correct_for "French Polynesia (Territoire français d'outre-mer)", :samples => '+689 87 27 84 00'
252
- it_is_correct_for 'Gabonese Republic', :samples => '+241 1 627 739'
252
+ it 'is correct for Gabon' do
253
+ Phony.plausible?('+241 1 627 739').should be_truthy
254
+ Phony.plausible?('+241 12 34 56 78').should be_truthy
255
+ end
256
+ # it_is_correct_for 'Gabonese Republic', :samples => [
257
+ # '+241 1 627 739',
258
+ # '+241 12 34 56 78',
259
+ # ]
253
260
  it_is_correct_for 'Gambia', :samples => '+220 989 5148'
254
261
  it_is_correct_for 'Germany', :samples => [
255
262
  '+49 69 155 1',
@@ -607,6 +614,7 @@ describe 'plausibility' do
607
614
  end
608
615
 
609
616
  it 'is correct for Philippine' do
617
+ Phony.plausible?('+63 2 89889999').should be_truthy
610
618
  Phony.plausible?('+63 976 1234567').should be_truthy # mobile phone with area code 9
611
619
  Phony.plausible?('+63 876 1234567').should be_truthy # mobile phone with area code 8
612
620
  end
@@ -103,9 +103,16 @@ describe 'country descriptions' do
103
103
  it_splits '3295551914', ['32', '9', '555', '19', '14'] # Gent
104
104
  it_splits '3245551414', ['32', '4', '555', '14', '14'] # Liège
105
105
  it_splits '3216473200', ['32', '16', '47', '32', '00'] # Leuven
106
- it_splits '32475279584', ['32', '475', '27', '95', '84'] # mobile
107
- it_splits '32468279584', ['32', '468', '27', '95', '84'] # mobile (Telenet)
108
106
  it_splits '32455123456', ['32', '455', '12', '34', '56'] # mobile (Voo)
107
+ it_splits '32456123456', ['32', '456', '12', '34', '56'] # mobile (MobileViking)
108
+ it_splits '32460123456', ['32', '460', '12', '34', '56'] # mobile (Proximus)
109
+ it_splits '32465123456', ['32', '465', '12', '34', '56'] # mobile (Lycamobile)
110
+ it_splits '32466123456', ['32', '466', '12', '34', '56'] # mobile (Vectone)
111
+ it_splits '32467123456', ['32', '467', '12', '34', '56'] # mobile (Telenet)
112
+ it_splits '32468123456', ['32', '468', '12', '34', '56'] # mobile (Telenet)
113
+ it_splits '32475123456', ['32', '475', '12', '34', '56'] # mobile (Proximus)
114
+ it_splits '32485123456', ['32', '485', '12', '34', '56'] # mobile (Telenet)
115
+ it_splits '32495123456', ['32', '495', '12', '34', '56'] # mobile (Orange)
109
116
  it_splits '3270123123', ['32', '70', '123', '123'] # Bus Service?
110
117
  it_splits '3278123123', ['32', '78', '123', '123'] # National rate service
111
118
  it_splits '3290123123', ['32', '901', '23', '123'] # National rate service
@@ -215,6 +222,7 @@ describe 'country descriptions' do
215
222
  describe 'China' do
216
223
  it_splits '862112345678', ['86', '21', '1234', '5678'] # Shanghai
217
224
  it_splits '8675582193447', ['86', '755', '8219', '3447'] # Shenzhen
225
+ it_splits '869511234567', ['86', '951', '123', '4567'] # Yinchuan
218
226
 
219
227
  context 'mobile numbers' do
220
228
  %w{
@@ -613,6 +621,7 @@ describe 'country descriptions' do
613
621
  end
614
622
  describe 'Philippines' do
615
623
  it_splits '6321234567', ['63', '2', '1234567']
624
+ it_splits '63289889999', ['63', '2', '89889999']
616
625
  it_splits '6321234567890', ['63', '2', '1234567890']
617
626
  it_splits '632123456789012', ['63', '2', '123456789012']
618
627
  it_splits '639121234567', ['63', '912', '1234567']
@@ -886,8 +895,8 @@ describe 'country descriptions' do
886
895
  it_splits '50622345678', %w(506 2 234 5678)
887
896
  end
888
897
  describe "Côte d'Ivoire" do
889
- it_splits '22507335518', ['225', '07', '33', '55', '18']
890
- it_splits '22537335518', ['225', '37', '33', '55', '18']
898
+ it_splits '2250107335518', ['225', '01', '07', '33', '55', '18']
899
+ it_splits '2250237335518', ['225', '02', '37', '33', '55', '18']
891
900
  end
892
901
  describe 'Democratic Republic of Timor-Leste' do
893
902
  it_splits '6701742945', ['670', false, '174', '2945']
@@ -950,6 +959,7 @@ describe 'country descriptions' do
950
959
  end
951
960
  describe 'Gabonese Republic' do
952
961
  it_splits '2411834375', ['241', '1', '834', '375']
962
+ it_splits '24174012345', ['241', '74', '01', '23', '45']
953
963
  end
954
964
  describe 'Gambia' do
955
965
  it_splits '2206683355', ['220', false, '668', '3355']
@@ -1154,6 +1164,17 @@ describe 'country descriptions' do
1154
1164
  it_splits '2349087661234', %w(234 908 766 1234)
1155
1165
  it_splits '2349097661234', %w(234 909 766 1234)
1156
1166
 
1167
+ it_splits '2349107661234', %w(234 910 766 1234)
1168
+ it_splits '2349117661234', %w(234 911 766 1234)
1169
+ it_splits '2349127661234', %w(234 912 766 1234)
1170
+ it_splits '2349137661234', %w(234 913 766 1234)
1171
+ it_splits '2349147661234', %w(234 914 766 1234)
1172
+ it_splits '2349157661234', %w(234 915 766 1234)
1173
+ it_splits '2349167661234', %w(234 916 766 1234)
1174
+ it_splits '2349177661234', %w(234 917 766 1234)
1175
+ it_splits '2349187661234', %w(234 918 766 1234)
1176
+ it_splits '2349197661234', %w(234 919 766 1234)
1177
+
1157
1178
  it_splits '2348107661234', %w(234 810 766 1234)
1158
1179
  it_splits '2348117661234', %w(234 811 766 1234)
1159
1180
  it_splits '2348127661234', %w(234 812 766 1234)
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.13
4
+ version: 2.18.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Hanke
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-24 00:00:00.000000000 Z
11
+ date: 2021-02-05 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
@@ -95,11 +95,11 @@ files:
95
95
  - spec/lib/phony/national_splitters/variable_spec.rb
96
96
  - spec/lib/phony/vanity_spec.rb
97
97
  - spec/lib/phony_spec.rb
98
- homepage: http://github.com/floere/phony
98
+ homepage: https://github.com/floere/phony
99
99
  licenses:
100
100
  - MIT
101
101
  metadata: {}
102
- post_install_message:
102
+ post_install_message:
103
103
  rdoc_options: []
104
104
  require_paths:
105
105
  - lib
@@ -115,7 +115,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
115
115
  version: '0'
116
116
  requirements: []
117
117
  rubygems_version: 3.0.3
118
- signing_key:
118
+ signing_key:
119
119
  specification_version: 4
120
120
  summary: Fast international phone number (E164 standard) normalizing, splitting and
121
121
  formatting.