phony 2.18.14 → 2.18.20

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: aeda5c706089f2345c5d9a474749f8088a728adedd86f84ce69443540b57612e
4
- data.tar.gz: 3d2fd865a0bbd0572a8444988e7c53809a0688e98b85b218191cfdbcfe96758c
3
+ metadata.gz: 4aa121c2347d97ea4409201b0aa8ef7d25e6a614f2dcdcd311775a55e825fd26
4
+ data.tar.gz: 180d24ec2a82f11072dbd03eba8659cbf5ab32d6d1a9867132fe16ac5c93c204
5
5
  SHA512:
6
- metadata.gz: 301e5a05da90d67f3943ca07d3a42b9def5c4c138b534235152e80b7450068315f1b635fda959c7f6b550fa6e5901ccff0aae9eaeae5d5126aa04cd46e7963ab
7
- data.tar.gz: bc888bc9e4aa0920f5ba53c1ff264317c7cecb762cfc7f1c386dfa62c6daf6b60218efc5a51725d65a2379f5ac024cbbe62899b6724dff8a96dc4326bad5688e
6
+ metadata.gz: 8c768ad38bc9fbb7a715de4317f0857a8ee62ca00c728a25968fbe6adbe96da09923523e9f34244af24655e02c6a09b9cfc1e13ae52ec3c304a589599fe3a2cc
7
+ data.tar.gz: 0644f348c82d5b1994dbbace37c4045b9c7d917ced71a3fbe99ef7706e7dad9c1831dc7641fdb07e6a4e77d2a8fa04d203d3dd0adfcae4155eb4968bab59a1d8
@@ -352,13 +352,13 @@ Phony.define do
352
352
 
353
353
  # Côte d'Ivoire
354
354
  # http://www.wtng.info/wtng-225-ci.html
355
- # 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
356
356
  # http://en.wikipedia.org/wiki/Telephone_numbers_in_Ivory_Coast
357
357
  #
358
358
  # There is no trunk code for this country and several of the mobile prefixes start with 0
359
359
  country '225',
360
360
  trunk('', :normalize => false) |
361
- fixed(2) >> split(2,2,2)
361
+ fixed(2) >> split(2,2,2,2)
362
362
 
363
363
  country '226', none >> split(4,4) # Burkina Faso http://www.wtng.info/wtng-226-bf.html
364
364
  country '227', none >> split(4,4) # Niger http://www.wtng.info/wtng-227-ne.html
@@ -397,6 +397,7 @@ Phony.define do
397
397
  country '234',
398
398
  match(/^([7-9]0\d)\d+$/) >> split(3,4) | # Mobile
399
399
  match(/^(81\d)\d+$/) >> split(3,4) | # Mobile
400
+ match(/^(91\d)\d+$/) >> split(3,4) | # Mobile
400
401
  one_of('1', '2') >> split(3,3..4) | # Lagos, Ibadan
401
402
  one_of('9') >> split(3,4) | # Abuja
402
403
  one_of((30..79).map(&:to_s)) >> split(3,2..3) | # 2-digit NDC
@@ -409,7 +410,9 @@ Phony.define do
409
410
  country '239', fixed(1) >> split(3,3) # Sao Tome and Principe, http://www.wtng.info/wtng-239-st.html
410
411
 
411
412
  country '240', none >> split(3,3,3) # Equatorial Guinea
412
- 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
413
416
  country '242', # Congo http://www.wtng.info/wtng-242-cg.html
414
417
  trunk('', :normalize => false) |
415
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]) |
@@ -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
@@ -8,6 +8,9 @@ Phony.define do
8
8
  trunk('0') |
9
9
  one_of(%w(800)) >> split(3,2) | # freephone
10
10
  one_of(%w(808)) >> split(3,2) | # payphone
11
+ one_of(%w(677 678)) >> matched_split(
12
+ /\A\d{4}\z/ => [3],
13
+ /\A\d+\z/ => [3,3]) |
11
14
  one_of(%w(230)) >> matched_split(
12
15
  /\A\d{4}\z/ => [4],
13
16
  /\A\d+\z/ => [3,2]) |
@@ -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',
@@ -422,6 +429,8 @@ describe 'plausibility' do
422
429
  '+381 60 123',
423
430
  '+381 60 123 4567',
424
431
  '+381 42 123 456',
432
+ '+381 677 123 456',
433
+ '+381 678 123 456',
425
434
  '+381 9 123 4567',
426
435
  '+381 60 123',
427
436
  '+381 60 123 456 7890',
@@ -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
@@ -888,8 +895,8 @@ describe 'country descriptions' do
888
895
  it_splits '50622345678', %w(506 2 234 5678)
889
896
  end
890
897
  describe "Côte d'Ivoire" do
891
- it_splits '22507335518', ['225', '07', '33', '55', '18']
892
- 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']
893
900
  end
894
901
  describe 'Democratic Republic of Timor-Leste' do
895
902
  it_splits '6701742945', ['670', false, '174', '2945']
@@ -952,6 +959,7 @@ describe 'country descriptions' do
952
959
  end
953
960
  describe 'Gabonese Republic' do
954
961
  it_splits '2411834375', ['241', '1', '834', '375']
962
+ it_splits '24174012345', ['241', '74', '01', '23', '45']
955
963
  end
956
964
  describe 'Gambia' do
957
965
  it_splits '2206683355', ['220', false, '668', '3355']
@@ -1156,6 +1164,17 @@ describe 'country descriptions' do
1156
1164
  it_splits '2349087661234', %w(234 908 766 1234)
1157
1165
  it_splits '2349097661234', %w(234 909 766 1234)
1158
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
+
1159
1178
  it_splits '2348107661234', %w(234 810 766 1234)
1160
1179
  it_splits '2348117661234', %w(234 811 766 1234)
1161
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.14
4
+ version: 2.18.20
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-06-11 00:00:00.000000000 Z
11
+ date: 2021-03-23 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.