phony 2.22.2 → 2.22.3
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/sweden.rb +348 -40
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2507e8773563b4b1426bedfaea567b6de1d0781d38a60721d1465633f3feb02a
|
4
|
+
data.tar.gz: 5dad20cc7d431ebe0208b3a4580e811b4835e2d09a9823aaf335b90b245f3f29
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9bd933a2021b59df0b968518de2163a133a28f3b36a4bc961ac505f95cc8f2c11c0b13a34d4b4ad5b4f40cb5a6b88fd6dddad130e97d33b6fc20745b7eaa6beb
|
7
|
+
data.tar.gz: c0ec556ad5d1ac31cca03671d428b58e63a9fcc80fca3dab862eba4ef312ca1ae061851f57c7ad09d1195a79336a3e542a53ad9077bdfac0ca19dd52a4886ece
|
@@ -2,27 +2,23 @@
|
|
2
2
|
|
3
3
|
# Sweden uses a variable-length ndc code, thus we use a separate file to not let all_other.rb explode.
|
4
4
|
#
|
5
|
-
# Note: Sweden use a variable ndc format
|
6
|
-
# To save space, we only use ndcs of length 1 and 2 (and use the fallback of 3 to handle the rest).
|
7
|
-
#
|
8
|
-
# Taken from: http://en.wikipedia.org/wiki/Telephone_numbers_in_Sweden
|
9
|
-
# http://www.pts.se/upload/Ovrigt/Tele/Nummerfragor/bilaga-2b.pdf
|
5
|
+
# Note: Sweden use a variable ndc format with length 1 to 3.
|
10
6
|
#
|
7
|
+
# Taken from: https://pts.se/globalassets/globala-block/nummertillstand/the-swedish-numbering-plan-for-telephony-according-to-itu---2024-01-08.pdf
|
8
|
+
# https://nummer.pts.se/NbrPlanSearch
|
9
|
+
# https://www.sosalarm.se/en/112-and-other-important-numbers/important-phone-numbers/
|
10
|
+
|
11
|
+
regional_ndcs_1 = [
|
12
|
+
'8' # Stockholm
|
13
|
+
]
|
11
14
|
|
12
|
-
|
13
|
-
# '7', # Non-geographic - conflicts with mobile
|
14
|
-
'8', # Stockholm
|
15
|
-
'10', # VOIP
|
15
|
+
regional_ndcs_2 = [
|
16
16
|
'11', # Norrköping
|
17
17
|
'13', # Linköping
|
18
18
|
'16', # Eskilstuna-Torshälla
|
19
|
-
'18', # Uppsala
|
20
|
-
'19', # Örebro-Kumla
|
21
|
-
'20', # toll-free
|
22
19
|
'21', # Västerås
|
23
20
|
'23', # Falun
|
24
21
|
'26', # Gävle-Sandviken
|
25
|
-
'31', # Göteborg
|
26
22
|
'33', # Borås
|
27
23
|
'35', # Halmstad
|
28
24
|
'36', # Jönköping-Huskvarna
|
@@ -30,33 +26,314 @@ ndcs = [
|
|
30
26
|
'42', # Helsingborg-Höganäs
|
31
27
|
'44', # Kristianstad
|
32
28
|
'46', # Lund
|
33
|
-
'54', # Karlstad
|
34
29
|
'60', # Sundsvall-Timrå
|
35
30
|
'63', # Östersund
|
36
|
-
'90'
|
37
|
-
'77' # Dalarna
|
31
|
+
'90' # Umeå; NB: Conflicts with 900 (Premium cost services)
|
38
32
|
]
|
39
|
-
|
40
|
-
|
41
|
-
'
|
42
|
-
'
|
43
|
-
'
|
44
|
-
'
|
45
|
-
'76', # Mobile
|
46
|
-
'79' # Mobile
|
33
|
+
|
34
|
+
large_regional_ndcs_2 = [
|
35
|
+
'18', # Uppsala
|
36
|
+
'19', # Örebro-Kumla
|
37
|
+
'31', # Göteborg
|
38
|
+
'54' # Karlstad
|
47
39
|
]
|
48
|
-
|
49
|
-
|
50
|
-
'
|
51
|
-
'
|
40
|
+
|
41
|
+
regional_ndcs_3 = [
|
42
|
+
'120', # Åtvidaberg
|
43
|
+
'121', # Söderköping
|
44
|
+
'122', # Finspång
|
45
|
+
'123', # Valdemarsvik
|
46
|
+
'125', # Vikbolandet
|
47
|
+
'140', # Tranås
|
48
|
+
'141', # Motala
|
49
|
+
'142', # Mjöby-Skänninge-Boxholm
|
50
|
+
'143', # Vadstena
|
51
|
+
'144', # Ödeshög
|
52
|
+
'150', # Katrineholm
|
53
|
+
'151', # Vingåker
|
54
|
+
'152', # Strängnäs
|
55
|
+
'155', # Nyköping-Oxelösund
|
56
|
+
'156', # Trosa-Vagnhärad
|
57
|
+
'157', # Flen Malmköping
|
58
|
+
'158', # Gnesta
|
59
|
+
'159', # Mariefred
|
60
|
+
'171', # Enköping
|
61
|
+
'173', # Öregrund-Östhammar
|
62
|
+
'174', # Alunda
|
63
|
+
'175', # Hallstavik-Rimbo
|
64
|
+
'176', # Norrtälje
|
65
|
+
'220', # Hallstahammar-Surahammar
|
66
|
+
'221', # Köping
|
67
|
+
'222', # Skinnskatteberg
|
68
|
+
'223', # Fagersta-Norberg
|
69
|
+
'224', # Sala-Heby
|
70
|
+
'225', # Hedemora-Säter
|
71
|
+
'226', # Avesta-Krylbo
|
72
|
+
'227', # Kungsör
|
73
|
+
'240', # Ludvika-Smedjebacken
|
74
|
+
'241', # Gagnef-Floda
|
75
|
+
'243', # Borlänge
|
76
|
+
'246', # Svärdsjö-Enviken
|
77
|
+
'247', # Leksand-Insjön
|
78
|
+
'248', # Rättvik
|
79
|
+
'250', # Mora-Orsa
|
80
|
+
'251', # Älvdalen
|
81
|
+
'253', # Idre-Särna
|
82
|
+
'258', # Furudal
|
83
|
+
'270', # Söderhamn
|
84
|
+
'271', # Alfta-Edsbyn
|
85
|
+
'278', # Bollnäs
|
86
|
+
'280', # Malung
|
87
|
+
'281', # Vansbro
|
88
|
+
'290', # Hofors-Storvik
|
89
|
+
'291', # Hedesunda-Österfärnebo
|
90
|
+
'292', # Tärnsjö-Östervåla
|
91
|
+
'293', # Tierp-Söderfors
|
92
|
+
'294', # Karlholmsbruk-Skärplinge
|
93
|
+
'295', # Örbyhus-Dannemora
|
94
|
+
'297', # Ockelbo-Hamrånge
|
95
|
+
'300', # Kungsbacka
|
96
|
+
'301', # Hindås
|
97
|
+
'302', # Lerum
|
98
|
+
'303', # Kungälv
|
99
|
+
'304', # Orust-Tjörn
|
100
|
+
'320', # Kinna
|
101
|
+
'321', # Ulricehamn
|
102
|
+
'322', # Alingsås-Vårgårda
|
103
|
+
'325', # Svenljunga-Tranemo
|
104
|
+
'340', # Varberg
|
105
|
+
'345', # Hyltebruk-Torup
|
106
|
+
'346', # Falkenberg
|
107
|
+
'370', # Värnamo
|
108
|
+
'371', # Gislaved-Anderstorp
|
109
|
+
'372', # Ljungby
|
110
|
+
'380', # Nässjö
|
111
|
+
'381', # Eksjö
|
112
|
+
'382', # Sävsjö
|
113
|
+
'383', # Vetlanda
|
114
|
+
'390', # Gränna
|
115
|
+
'392', # Mullsjö
|
116
|
+
'393', # Vaggeryd
|
117
|
+
'410', # Trelleborg
|
118
|
+
'411', # Ystad
|
119
|
+
'413', # Eslöv-Höör
|
120
|
+
'414', # Simrishamn
|
121
|
+
'415', # Hörby
|
122
|
+
'416', # Sjöbo
|
123
|
+
'417', # Tomelilla
|
124
|
+
'418', # Landskrona-Svalöv
|
125
|
+
'430', # Laholm
|
126
|
+
'431', # Ängelholm-Båstad
|
127
|
+
'433', # Markaryd-Strömsnäsbruk
|
128
|
+
'435', # Klippan-Perstorp
|
129
|
+
'451', # Hässleholm
|
130
|
+
'454', # Karlshamn-Olofström
|
131
|
+
'455', # Karlskrona
|
132
|
+
'456', # Sölvesborg-Bromölla
|
133
|
+
'457', # Ronneby
|
134
|
+
'459', # Ryd
|
135
|
+
'470', # Växjö
|
136
|
+
'471', # Emmaboda
|
137
|
+
'472', # Alvesta-Rydaholm
|
138
|
+
'474', # Åseda-Lenhovda
|
139
|
+
'476', # Älmhult
|
140
|
+
'477', # Tingsryd
|
141
|
+
'478', # Lessebo
|
142
|
+
'479', # Osby
|
143
|
+
'480', # Kalmar
|
144
|
+
'481', # Nybro
|
145
|
+
'485', # Öland
|
146
|
+
'486', # Torsås
|
147
|
+
'490', # Västervik
|
148
|
+
'491', # Oskarshamn-Högsby
|
149
|
+
'492', # Vimmerby
|
150
|
+
'493', # Gamleby
|
151
|
+
'494', # Kisa
|
152
|
+
'495', # Hultsfred-Virserum
|
153
|
+
'496', # Mariannelund
|
154
|
+
'498', # Gotland
|
155
|
+
'499', # Mönsterås
|
156
|
+
'500', # Skövde
|
157
|
+
'501', # Mariestad
|
158
|
+
'502', # Tidaholm
|
159
|
+
'503', # Hjo
|
160
|
+
'504', # Tibro
|
161
|
+
'505', # Karlsborg
|
162
|
+
'506', # Töreboda-Hova
|
163
|
+
'510', # Lidköping
|
164
|
+
'511', # Skara-Götene
|
165
|
+
'512', # Vara-Nossebro
|
166
|
+
'513', # Herrljunga
|
167
|
+
'514', # Grästorp
|
168
|
+
'515', # Falköping
|
169
|
+
'520', # Trollhättan
|
170
|
+
'521', # Vänerborg
|
171
|
+
'522', # Uddevalla
|
172
|
+
'523', # Lysekil
|
173
|
+
'524', # Munkedal
|
174
|
+
'525', # Grebbestad
|
175
|
+
'526', # Strömstad
|
176
|
+
'528', # Färgelanda
|
177
|
+
'530', # Mellerud
|
178
|
+
'531', # Bengtsfors
|
179
|
+
'532', # Åmål
|
180
|
+
'533', # Säffle
|
181
|
+
'534', # Ed
|
182
|
+
'550', # Kristinehamn
|
183
|
+
'551', # Gullspång
|
184
|
+
'552', # Deje
|
185
|
+
'553', # Molkom
|
186
|
+
'554', # Kil
|
187
|
+
'555', # Grums
|
188
|
+
'560', # Torsby
|
189
|
+
'563', # Hagfors-Munkfors
|
190
|
+
'564', # Sysslebäck
|
191
|
+
'565', # Sunne
|
192
|
+
'570', # Arvika
|
193
|
+
'571', # Charlottenberg-Åmotfors
|
194
|
+
'573', # Årjäng
|
195
|
+
'580', # Kopparberg
|
196
|
+
'581', # Lindesberg
|
197
|
+
'582', # Hallsberg
|
198
|
+
'583', # Askersund
|
199
|
+
'584', # Laxå
|
200
|
+
'585', # Fjugesta-Svartå
|
201
|
+
'586', # Karlskoga-Degerfors
|
202
|
+
'587', # Nora
|
203
|
+
'589', # Arboga
|
204
|
+
'590', # Filipstad
|
205
|
+
'591', # Hällefors-Grythyttan
|
206
|
+
'611', # Härnösand
|
207
|
+
'612', # Kramfors
|
208
|
+
'613', # Ullånger
|
209
|
+
'620', # Sollefteå
|
210
|
+
'621', # Junsele
|
211
|
+
'622', # Näsåker
|
212
|
+
'623', # Ramsele
|
213
|
+
'624', # Backe
|
214
|
+
'640', # Krokom
|
215
|
+
'642', # Lit
|
216
|
+
'643', # Hallen-Oviken
|
217
|
+
'644', # Hammerdal
|
218
|
+
'645', # Föllinge
|
219
|
+
'647', # Åre-Järpen
|
220
|
+
'650', # Hudiksvall
|
221
|
+
'651', # Ljusdal
|
222
|
+
'652', # Bergsjö
|
223
|
+
'653', # Delsbo
|
224
|
+
'657', # Los
|
225
|
+
'660', # Örnsköldsvik
|
226
|
+
'661', # Bredbyn
|
227
|
+
'662', # Björna
|
228
|
+
'663', # Husum
|
229
|
+
'670', # Strömsund
|
230
|
+
'671', # Hoting
|
231
|
+
'672', # Gäddede
|
232
|
+
'680', # Sveg
|
233
|
+
'682', # Rätan
|
234
|
+
'684', # Hede-Funäsdalen
|
235
|
+
'687', # Svenstavik
|
236
|
+
'690', # Ånge
|
237
|
+
'691', # Torpshammar
|
238
|
+
'692', # Liden
|
239
|
+
'693', # Bräcke-Gällö
|
240
|
+
'695', # Stugun
|
241
|
+
'696', # Hammarstrand
|
242
|
+
'910', # Skellefteå
|
243
|
+
'911', # Piteå
|
244
|
+
'912', # Byske
|
245
|
+
'913', # Lövånger
|
246
|
+
'914', # Burträsk
|
247
|
+
'915', # Bastuträsk
|
248
|
+
'916', # Jörn
|
249
|
+
'918', # Norsjö
|
250
|
+
'920', # Luleå
|
251
|
+
'921', # Boden
|
252
|
+
'922', # Haparanda
|
253
|
+
'923', # Kalix
|
254
|
+
'924', # Råneå
|
255
|
+
'925', # Lakaträsk
|
256
|
+
'926', # Överkalix
|
257
|
+
'927', # Övertorneå
|
258
|
+
'928', # Harads
|
259
|
+
'929', # Älvsbyn
|
260
|
+
'930', # Nordmaling
|
261
|
+
'932', # Bjurholm
|
262
|
+
'933', # Vindeln
|
263
|
+
'934', # Robertsfors
|
264
|
+
'935', # Vännäs
|
265
|
+
'940', # Vilhelmina
|
266
|
+
'941', # Åsele
|
267
|
+
'942', # Dorotea
|
268
|
+
'943', # Fredrika
|
269
|
+
'950', # Lycksele
|
270
|
+
'951', # Storuman
|
271
|
+
'952', # Sorsele
|
272
|
+
'953', # Malå
|
273
|
+
'954', # Tärnaby
|
274
|
+
'960', # Arvidsjaur
|
275
|
+
'961', # Arjeplog
|
276
|
+
'970', # Gällivare
|
277
|
+
'971', # Jokkmokk
|
278
|
+
'973', # Porjus
|
279
|
+
'975', # Hakkas
|
280
|
+
'976', # Vuollerim
|
281
|
+
'977', # Korpilombolo
|
282
|
+
'978', # Pajala
|
283
|
+
'980', # Kiruna
|
284
|
+
'981' # Vittangi
|
285
|
+
]
|
286
|
+
|
287
|
+
location_independent_ndcs = [
|
288
|
+
'10', # Location independent services (VoIP)
|
289
|
+
'70', # Mobile telephony services
|
290
|
+
'72', # Mobile telephony services
|
291
|
+
'73', # Mobile telephony services
|
292
|
+
'74', # Paging services
|
293
|
+
'75', # Personal numbering services
|
294
|
+
'76', # Mobile telephony services
|
295
|
+
'77', # Shared cost services
|
296
|
+
'79' # Mobile telephony services
|
52
297
|
]
|
298
|
+
|
53
299
|
service_ndcs = [
|
54
|
-
'
|
55
|
-
'900', # Premium
|
56
|
-
'939', # Premium
|
57
|
-
'944' # Premium
|
300
|
+
'20', # Toll-free services
|
301
|
+
'900', # Premium cost services; NB: Conflicts with 90 (Umeå)
|
302
|
+
'939', # Premium cost services
|
303
|
+
'944' # Premium cost services
|
304
|
+
]
|
305
|
+
|
306
|
+
mobile_telematic_service_ndcs = ['71']
|
307
|
+
fixed_telematic_service_ndcs = ['378']
|
308
|
+
operator_specific_ndcs = ['78']
|
309
|
+
mass_call_service_ndcs = ['99']
|
310
|
+
routing_ndcs = [
|
311
|
+
'252', # Routing address - Assigned to Tele2 Sverige AB
|
312
|
+
'254', # Routing address – Assigned to Tele2 Sverige AB
|
313
|
+
'255', # Routing address – Assigned to Telenor Sverige AB
|
314
|
+
'673', # Routing address – Assigned to TeliaSonera Sverige AB
|
315
|
+
'674', # Routing address – Assigned to Telenor Sverige AB
|
316
|
+
'675', # Routing address – Assigned to Hi3G Access AB
|
317
|
+
'676', # Routing address – Assigned to Spring Mobil AB
|
318
|
+
'678' # Routing address – Assigned to Götalandsnätet AB
|
58
319
|
]
|
59
|
-
|
320
|
+
|
321
|
+
misc_ndcs = [
|
322
|
+
'649', # Routing address – Assigned to Eniro 118118 AB
|
323
|
+
'655', # Sample number (national use)
|
324
|
+
'656', # Sample number (national use)
|
325
|
+
'958' # Routing address – Assigned to TeliaSonera Sverige AB
|
326
|
+
]
|
327
|
+
|
328
|
+
services = [
|
329
|
+
'112', # For emergencies when there is a danger to life, property, or the environment
|
330
|
+
'1177', # Healthcare advice for private individuals
|
331
|
+
'11313', # National information number for severe accidents and crises
|
332
|
+
'11414', # National police number for non-urgent police matters
|
333
|
+
'116000' # EU-wide hotline number to report missing children
|
334
|
+
]
|
335
|
+
|
336
|
+
three_digit_service_ndcs = [
|
60
337
|
'116', # Psychological Help (116 xxx)
|
61
338
|
'118' # Number enquiries (118 xxx)
|
62
339
|
]
|
@@ -65,16 +342,47 @@ Phony.define do
|
|
65
342
|
country '46',
|
66
343
|
trunk('0') |
|
67
344
|
match(/^(#{services.join('|')})$/) >> split(0) |
|
68
|
-
|
69
|
-
|
70
|
-
|
345
|
+
match(/^(#{three_digit_service_ndcs.join('|')})\d{3}$/) >> split(3) |
|
346
|
+
one_of(service_ndcs) >> matched_split( # NB: Must be *before* the regional NDCs due to ambiguity of 0900
|
347
|
+
/^\d{4}$/ => [4],
|
71
348
|
/^\d{5}$/ => [3, 2],
|
72
349
|
/^\d{6}$/ => [2, 2, 2],
|
73
|
-
/^\d{7}$/ => [3, 2, 2]
|
74
|
-
/^\d{8}$/ => [3, 2, 3]
|
350
|
+
/^\d{7}$/ => [3, 2, 2]
|
75
351
|
) |
|
76
|
-
|
352
|
+
one_of(fixed_telematic_service_ndcs) >> split(3, 2, 2) |
|
353
|
+
one_of(routing_ndcs) >> split(3, 3, 3) |
|
354
|
+
one_of(regional_ndcs_3) >> matched_split(
|
355
|
+
/^11\d$/ => [3],
|
356
|
+
/^95\d{2}$/ => [4],
|
77
357
|
/^\d{5}$/ => [3, 2],
|
78
358
|
/^\d{6}$/ => [2, 2, 2]
|
79
|
-
)
|
359
|
+
) |
|
360
|
+
one_of(large_regional_ndcs_2) >> matched_split(
|
361
|
+
/^11\d$/ => [3],
|
362
|
+
/^95\d{2}$/ => [4],
|
363
|
+
/^90\d{3}$/ => [3, 2],
|
364
|
+
/^\d{6}$/ => [2, 2, 2],
|
365
|
+
/^\d{7}$/ => [3, 2, 2]
|
366
|
+
) |
|
367
|
+
one_of(regional_ndcs_2) >> matched_split(
|
368
|
+
/^11\d$/ => [3],
|
369
|
+
/^95\d{2}$/ => [4],
|
370
|
+
/^\d{5}$/ => [3, 2],
|
371
|
+
/^\d{6}$/ => [2, 2, 2],
|
372
|
+
/^\d{7}$/ => [3, 2, 2]
|
373
|
+
) |
|
374
|
+
one_of(location_independent_ndcs) >> split(3, 2, 2) |
|
375
|
+
one_of(mobile_telematic_service_ndcs) >> split(3, 3, 3, 2) |
|
376
|
+
one_of(mass_call_service_ndcs) >> split(3, 2) |
|
377
|
+
one_of(regional_ndcs_1) >> matched_split(
|
378
|
+
/^11\d$/ => [3],
|
379
|
+
/^95\d$/ => [3],
|
380
|
+
/^95\d{2}$/ => [4],
|
381
|
+
/^90\d{3}$/ => [3, 2],
|
382
|
+
/^\d{6}$/ => [3, 3],
|
383
|
+
/^\d{7}$/ => [3, 2, 2],
|
384
|
+
/^\d{8}$/ => [3, 2, 3]
|
385
|
+
) |
|
386
|
+
one_of(operator_specific_ndcs) >> split(1..11) |
|
387
|
+
one_of(misc_ndcs) >> split(1..10)
|
80
388
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: phony
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.22.
|
4
|
+
version: 2.22.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Florian Hanke
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
11
11
|
dependencies: []
|
12
12
|
description: 'Fast international phone number (E164 standard) normalizing, splitting
|
13
13
|
and formatting. Lots of formatting options: International (+.., 00..), national
|
@@ -96,7 +96,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
96
96
|
- !ruby/object:Gem::Version
|
97
97
|
version: '0'
|
98
98
|
requirements: []
|
99
|
-
rubygems_version: 3.6.
|
99
|
+
rubygems_version: 3.6.9
|
100
100
|
specification_version: 4
|
101
101
|
summary: Fast international phone number (E164 standard) normalizing, splitting and
|
102
102
|
formatting.
|