phony 2.0.0.beta4 → 2.0.0.beta5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ NWVhNDYzYzZjYTZiYTMzNjU0N2YwNzE5M2FkMzA2NmU2M2Q4N2EyYQ==
5
+ data.tar.gz: !binary |-
6
+ OTNkM2Q5NjQxNTliZjE1MmQxNjhkMDQ5NjhlZmI4NTRjN2MzNmZjYQ==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ YWU4ZmQ5ZjFlMGJkNDI1OWNjOTJhNmI0NTlkNGMzYzcwMjcxYzFjNzJmMjg4
10
+ YjUzYjQyMDg4ZjU2M2Y3OGEwZjExNDM0YTIyZDEwYzdiOTZhMGQ5NjQ0Mzk3
11
+ ZWRmMWQwNTgxMTU2MzUxNmQyNmEwYzhlOWQ5NDNmNjQ2ZTY4ZjE=
12
+ data.tar.gz: !binary |-
13
+ YzAxOTUxMDg3YzViNTZjMDBlYjgyYzk4MzUwY2E3OTkyZjZkNmZiMzI4YTc3
14
+ MGZhYWQ5ODZhZmRmMzZhNzVhODdlNmRhZThhZmFjM2JlOGYxOTY1YjUzMmQ4
15
+ NWI1YTg1ZWNjYzY2YzNhOGY5NjA5NTgzMDA2NjUzZTJmOGNiM2I=
@@ -2,6 +2,8 @@
2
2
  # thus we use a separate file to not let countries.rb explode.
3
3
  #
4
4
  # Note: The United Kingdom uses a variable NDC format from length 2 to 5.
5
+ # Most UK numbers have ten digits but a few have only nine digits.
6
+ # http://www.aa-asterisk.org.uk/index.php/Category:UK_Number_Plan
5
7
  #
6
8
  # The UK is special in formatting in that it uses:
7
9
  # a 2-4-4 formatting rule with area codes that are 2 digits long,
@@ -11,6 +13,14 @@
11
13
  # There can be a mix of number lengths within a single area code.
12
14
  #
13
15
 
16
+ mobile_ndc = [
17
+ # Mobile [4+6].
18
+ #
19
+ ('7100'..'7599').to_a,
20
+ '7624', # Isle of Man
21
+ ('7700'..'7999').to_a,
22
+ ].flatten
23
+
14
24
  two_digit_ndc = [
15
25
  # Geographic [2+8] - includes (02x) 0 and (02x) 1 as NDO.
16
26
  #
@@ -25,7 +35,7 @@ two_digit_ndc = [
25
35
  '55', # Corporate
26
36
  '56', # LIECS/VoIP
27
37
  '70', # Personal numbers
28
- '76', # Pagers (not 7624)
38
+ '76', # Pagers (not 7624, Mobile, Isle of Man)
29
39
  ]
30
40
 
31
41
  # three_digit_ndc_with_nine_digits
@@ -48,7 +58,7 @@ three_digit_ndc = [
48
58
  '141', # Glasgow
49
59
  '151', # Liverpool
50
60
  '161', # Manchester
51
- '191', # Tyne and Wear/County Durham
61
+ '191', # Tyneside, Sunderland and Durham (ELNS area)
52
62
 
53
63
  # Non-geographic [3+7].
54
64
  #
@@ -140,10 +150,10 @@ five_digit_ndc = [
140
150
  '19467', # Gosforth
141
151
  ]
142
152
 
143
- no_split = [
153
+ variable_length_number = [
144
154
  # Geographic [4+6]/[4+5] - includes (01xxx) 0 and (01xxx) 1 as NDO.
145
155
  #
146
- # These 40 area codes have a mix of 4-6 and 4-5 numbers
156
+ # These 40 area codes have a mix of 4-6 and 4-5 numbers.
147
157
  # The three 'mixed' areas also have part of their number
148
158
  # range sub-allocated as 5-5.
149
159
  '1204', # Bolton
@@ -186,44 +196,607 @@ no_split = [
186
196
  '1949', # Whatton
187
197
  '1963', # Wincanton
188
198
  '1995', # Garstang
199
+ ]
189
200
 
190
- # 6 is the fallback length.
191
- #
192
- # Mobile [4+6].
193
- #
194
- ('7100'..'7599').to_a,
195
- '7624',
196
- ('7700'..'7999').to_a,
197
-
201
+ four_digit_ndc = [
198
202
  # Geographic [4+6] - includes (01xxx) 0 and (01xxx) 1 as NDO.
199
203
  #
200
- # About 500 area codes use the 4-6 format
204
+ # These 542 area codes have only 4-6 numbers.
201
205
  # The three 'mixed' areas also have part of their number
202
206
  # range sub-allocated as 5-5 and one also has some 5-4.
203
- '1224', # Aberdeen
207
+ '1200', # Clitheroe
208
+ '1202', # Bournemouth
209
+ #1204 Bolton (see [4+6]/[4+5] areas)
210
+ '1205', # Boston
211
+ '1206', # Colchester
212
+ '1207', # Consett
213
+ #1208 Bodmin (see [4+6]/[4+5] areas)
214
+ '1209', # Redruth, Cornwall
215
+ '1223', # Cambridge
216
+ '1224', # Aberdeen
217
+ '1225', # Bath
218
+ '1226', # Barnsley
219
+ '1227', # Canterbury
220
+ '1228', # Carlisle
221
+ '1229', # Barrow-in-Furness and Millom (ELNS area)
222
+ '1233', # Ashford, Kent
223
+ '1234', # Bedford
224
+ '1235', # Abingdon
225
+ '1236', # Coatbridge
226
+ '1237', # Bideford
227
+ '1239', # Cardigan
228
+ '1241', # Arbroath
229
+ '1242', # Cheltenham
230
+ '1243', # Chichester, West Sussex
204
231
  '1244', # Chester
232
+ '1245', # Chelmsford
233
+ '1246', # Chesterfield
234
+ '1248', # Bangor, Gwynedd
235
+ '1249', # Chippenham
236
+ '1250', # Blairgowrie
237
+ '1252', # Aldershot
238
+ '1253', # Blackpool
239
+ #1254 Blackburn (see [4+6]/[4+5] areas)
240
+ '1255', # Clacton-on-Sea
241
+ '1256', # Basingstoke
242
+ '1257', # Coppull, Chorley
243
+ '1258', # Blandford
244
+ '1259', # Alloa
245
+ '1260', # Congleton
246
+ '1261', # Banff
247
+ '1262', # Bridlington
248
+ '1263', # Cromer
249
+ '1264', # Andover
250
+ '1267', # Carmarthen
251
+ '1268', # Basildon
252
+ '1269', # Ammanford
253
+ '1270', # Crewe
254
+ '1271', # Barnstaple
255
+ '1273', # Brighton
256
+ '1274', # Bradford
257
+ '1275', # Clevedon, Bristol
258
+ #1276 Camberley (see [4+6]/[4+5] areas)
259
+ '1277', # Brentwood
260
+ '1278', # Bridgwater
261
+ '1279', # Bishop's Stortford
262
+ '1280', # Buckingham
263
+ '1282', # Burnley
264
+ '1283', # Burton-on-Trent
265
+ '1284', # Bury St Edmunds
266
+ '1285', # Cirencester
267
+ '1286', # Caernarfon
268
+ '1287', # Guisborough
269
+ '1288', # Bude
270
+ '1289', # Berwick-upon-Tweed
271
+ '1290', # Cumnock, Ayrshire
272
+ '1291', # Chepstow
273
+ '1292', # Ayr
274
+ '1293', # Crawley
275
+ '1294', # Ardrossan, Ayrshire
276
+ '1295', # Banbury
277
+ '1296', # Aylesbury
278
+ #1297 Axminster (see [4+6]/[4+5] areas)
279
+ #1298 Buxton (see [4+6]/[4+5] areas)
280
+ '1299', # Bewdley
281
+ '1300', # Cerne Abbas, Dorset
282
+ '1301', # Arrochar
283
+ '1302', # Doncaster
284
+ '1303', # Folkestone
285
+ '1304', # Dover
286
+ '1305', # Dorchester
287
+ '1306', # Dorking
288
+ '1307', # Forfar
289
+ '1308', # Bridport, Dorset
290
+ '1309', # Forres
291
+ '1320', # Fort Augustus
292
+ '1322', # Dartford
293
+ '1323', # Eastbourne
294
+ '1324', # Falkirk
295
+ '1325', # Darlington
296
+ '1326', # Falmouth
297
+ '1327', # Daventry
298
+ '1328', # Fakenham
299
+ '1329', # Fareham
300
+ '1330', # Banchory, Deeside
301
+ '1332', # Derby
302
+ '1333', # Peat Inn and Leven, Fife
303
+ '1334', # St Andrews, Fife
304
+ '1335', # Ashbourne
305
+ '1337', # Ladybank, Fife
306
+ '1339', # Aboyne and Ballater (ELNS area)
307
+ '1340', # Craigellachie, Elgin
308
+ '1341', # Barmouth, Dolgellau
309
+ '1342', # East Grinstead
310
+ '1343', # Elgin
311
+ '1344', # Bracknell, Easthampstead
312
+ '1346', # Fraserburgh
313
+ '1347', # Easingwold
314
+ '1348', # Fishguard
315
+ '1349', # Dingwall
316
+ '1350', # Dunkeld
317
+ '1352', # Mold, Flint
318
+ '1353', # Ely
319
+ '1354', # Chatteris and March, Cambridgeshire, Fenland
320
+ '1355', # East Kilbride
321
+ '1356', # Brechin, Edzell
322
+ '1357', # Strathaven, East Kilbride
323
+ '1358', # Ellon
324
+ '1359', # Pakenham, Elmswell
325
+ '1360', # Killearn, Drymen
326
+ '1361', # Duns
327
+ '1362', # Dereham
328
+ #1363 Crediton (see [4+6]/[4+5] areas)
329
+ #1364 Ashburton, Devon (see [4+6]/[4+5] areas)
330
+ '1366', # Downham Market
331
+ '1367', # Faringdon
332
+ '1368', # Dunbar
333
+ '1369', # Dunoon
334
+ '1371', # Great Dunmow, Essex
335
+ '1372', # Esher, Epsom
336
+ '1373', # Frome
337
+ '1375', # Grays Thurrock, Essex
338
+ '1376', # Braintree, Essex
339
+ '1377', # Driffield
340
+ '1379', # Diss
341
+ '1380', # Devizes
342
+ '1381', # Fortrose
205
343
  '1382', # Dundee
344
+ '1383', # Dunfermline
345
+ #1384 Dudley (see [4+6]/[4+5] areas)
346
+ #1386 Evesham (see [4+6]/[4+5] areas)
206
347
  '1387', # Dumfries (Mixed area)
348
+ '1388', # Bishop Auckland, Durham and Stanhope (Eastgate) (ELNS area)
349
+ '1389', # Dumbarton
350
+ '1392', # Exeter
351
+ '1394', # Felixstowe
352
+ '1395', # Budleigh Salterton, Exmouth
353
+ '1397', # Fort William
354
+ '1398', # Dulverton, Exmoor
355
+ '1400', # Honington
356
+ '1403', # Horsham
357
+ #1404 Honiton (see [4+6]/[4+5] areas)
358
+ '1405', # Goole
359
+ '1406', # Holbeach
360
+ '1407', # Holyhead
361
+ '1408', # Golspie
362
+ '1409', # Holsworthy
363
+ #1420 Alton (see [4+6]/[4+5] areas)
364
+ '1422', # Halifax
365
+ '1423', # Boroughbridge and Harrogate (ELNS area)
366
+ '1424', # Hastings
367
+ '1425', # Ringwood, Highcliffe; New Milton, Ashley
368
+ '1427', # Gainsborough
369
+ '1428', # Haslemere
207
370
  '1429', # Hartlepool
208
- '1482', # Hull
371
+ '1430', # Market Weighton and North Cave, Howden (ELNS area)
372
+ '1431', # Helmsdale
373
+ '1432', # Hereford
374
+ '1433', # Hathersage
375
+ '1434', # Bellingham, Haltwhistle and Hexham (ELNS area)
376
+ '1435', # Heathfield
377
+ '1436', # Helensburgh
378
+ '1437', # Clynderwen and Haverfordwest (ELNS area)
379
+ '1438', # Stevenage, Hertfordshire
380
+ '1439', # Helmsley
381
+ '1440', # Haverhill
382
+ '1442', # Hemel Hempstead
383
+ '1443', # Pontypridd, Glamorgan
384
+ '1444', # Haywards Heath
385
+ '1445', # Gairloch
386
+ '1446', # Barry, Glamorgan
387
+ '1449', # Stowmarket, Gipping
388
+ '1450', # Hawick
389
+ '1451', # Stow-on-the-Wold, Gloucestershire
390
+ '1452', # Gloucester
391
+ '1453', # Dursley, Gloucestershire
392
+ '1454', # Chipping Sodbury, Gloucestershire
393
+ '1455', # Hinckley
394
+ '1456', # Glenurquhart
395
+ '1457', # Glossop
396
+ '1458', # Glastonbury
397
+ #1460 Chard, Ilminster (see [4+6]/[4+5] areas)
398
+ #1461 Gretna (see [4+6]/[4+5] areas)
399
+ '1462', # Hitchin
400
+ '1463', # Inverness
401
+ '1464', # Insch
402
+ '1465', # Girvan
403
+ '1466', # Huntly
404
+ '1467', # Inverurie
405
+ '1469', # Killingholme, Immingham
406
+ '1470', # Edinbane, Isle of Skye
407
+ '1471', # Broadford, Isle of Skye
408
+ '1472', # Grimsby
409
+ '1473', # Ipswich
410
+ '1474', # Gravesend
411
+ '1475', # Greenock
412
+ '1476', # Grantham
413
+ '1477', # Holmes Chapel
414
+ '1478', # Portree, Isle of Skye
415
+ '1479', # Grantown-on-Spey
416
+ #1480 Huntingdon (see [4+6]/[4+5] areas)
417
+ '1481', # Guernsey
418
+ '1482', # Kingston-upon-Hull
419
+ '1483', # Guildford
420
+ '1484', # Huddersfield
421
+ '1485', # Hunstanton
422
+ '1487', # Warboys, Huntingdon
423
+ #1488 Hungerford (see [4+6]/[4+5] areas)
424
+ '1489', # Bishops Waltham, Hamble Valley
425
+ '1490', # Corwen, Gwynedd
426
+ '1491', # Henley-on-Thames
427
+ '1492', # Colwyn Bay, Gwynedd
428
+ '1493', # Great Yarmouth
429
+ '1494', # High Wycombe
430
+ '1495', # Pontypool, Gwent
431
+ '1496', # Port Ellen, Islay
432
+ '1497', # Hay-on-Wye
433
+ '1499', # Inveraray
434
+ '1501', # Harthill, Lothian
435
+ '1502', # Lowestoft
436
+ '1503', # Looe
437
+ '1505', # Johnstone
438
+ '1506', # Bathgate, Lothian
439
+ '1507', # Alford (Lincs), Louth and Spilsby (Horncastle) (ELNS area)
440
+ '1508', # Brooke
441
+ '1509', # Loughborough
442
+ '1520', # Lochcarron
443
+ '1522', # Lincoln
444
+ #1524 Lancaster (Mixed area) (see [4+6]/[4+5] areas)
445
+ '1525', # Leighton Buzzard
446
+ '1526', # Martin, Lincolnshire
447
+ #1527 Redditch (see [4+6]/[4+5] areas)
448
+ '1528', # Laggan, Badenoch
449
+ '1529', # Sleaford, Lincolnshire
450
+ '1530', # Coalville, Ashby-de-la-Zouch, Leicestershire
451
+ '1531', # Ledbury
452
+ '1534', # Jersey
453
+ '1535', # Keighley
454
+ '1536', # Kettering
455
+ '1538', # Ipstones, Leek
209
456
  '1539', # Kendal (Mixed area)
457
+ '1540', # Kingussie
458
+ '1542', # Keith
459
+ '1543', # Cannock, Lichfield
460
+ '1544', # Kington
461
+ '1545', # Llanarth, Ceredigion
462
+ '1546', # Lochgilphead
463
+ '1547', # Knighton
464
+ '1548', # Kingsbridge
465
+ '1549', # Lairg
466
+ '1550', # Llandovery
467
+ '1553', # King's Lynn
468
+ '1554', # Llanelli
469
+ '1555', # Lanark
470
+ '1556', # Castle Douglas, Kirkcudbrightshire
471
+ '1557', # Kirkcudbright
472
+ '1558', # Llandeilo
473
+ '1559', # Llandysul
474
+ '1560', # Moscow
475
+ '1561', # Laurencekirk
476
+ #1562 Kidderminster (see [4+6]/[4+5] areas)
477
+ '1563', # Kilmarnock
478
+ '1564', # Lapworth, Knowle
479
+ '1565', # Knutsford
480
+ #1566 Launceston (see [4+6]/[4+5] areas)
481
+ '1567', # Killin
482
+ '1568', # Leominster
483
+ '1569', # Stonehaven, Laurencekirk
484
+ '1570', # Lampeter
485
+ '1571', # Lochinver
486
+ '1572', # Oakham
487
+ '1573', # Kelso
488
+ '1575', # Kirriemuir
489
+ '1576', # Lockerbie
490
+ '1577', # Kinross
491
+ '1578', # Lauder
492
+ '1579', # Liskeard
493
+ '1580', # Cranbrook, Kent
494
+ '1581', # New Luce, Luce
210
495
  '1582', # Luton
496
+ '1583', # Carradale, Kintyre
497
+ '1584', # Ludlow
498
+ '1586', # Campbeltown, Kintyre
499
+ '1588', # Bishops Castle, Ludlow
500
+ '1590', # Lymington
501
+ '1591', # Llanwrtyd Wells
502
+ '1592', # Kirkcaldy
503
+ '1593', # Lybster
504
+ '1594', # Lydney
505
+ '1595', # Lerwick, Foula and Fair Isle
506
+ '1597', # Llandrindod Wells
507
+ '1598', # Lynton
508
+ '1599', # Kyle
509
+ '1600', # Monmouth
510
+ '1603', # Norwich
511
+ '1604', # Northampton
512
+ #1606 Northwich (see [4+6]/[4+5] areas)
513
+ '1608', # Chipping Norton
514
+ '1609', # Northallerton
515
+ '1620', # North Berwick
516
+ '1621', # Maldon
517
+ '1622', # Maidstone
518
+ '1623', # Mansfield
519
+ '1624', # Isle of Man
520
+ '1625', # Macclesfield
521
+ '1626', # Newton Abbot
522
+ '1628', # Maidenhead
523
+ #1629 Matlock (see [4+6]/[4+5] areas)
524
+ '1630', # Market Drayton
525
+ '1631', # Oban
526
+ #1632 Numbers for Drama
527
+ '1633', # Newport
528
+ '1634', # Medway
529
+ #1635 Newbury (see [4+6]/[4+5] areas)
530
+ '1636', # Newark-on-Trent
531
+ '1637', # Newquay
532
+ '1638', # Newmarket
533
+ '1639', # Neath
534
+ '1641', # Strathy, Melvich
535
+ '1642', # Middlesbrough
536
+ '1643', # Minehead
537
+ '1644', # New Galloway
538
+ '1646', # Milford Haven
539
+ #1647 Moretonhampstead (see [4+6]/[4+5] areas)
540
+ '1650', # Cemmaes Road, Machynlleth
541
+ '1651', # Oldmeldrum
542
+ '1652', # Brigg, North Kelsey
543
+ '1653', # Malton
544
+ '1654', # Machynlleth
545
+ '1655', # Maybole
546
+ '1656', # Bridgend
547
+ #1659 Sanquhar, Nithsdale (see [4+6]/[4+5] areas)
548
+ '1661', # Prudhoe, Northumberland
549
+ '1663', # New Mills
550
+ '1664', # Melton Mowbray
551
+ '1665', # Alnwick, Northumberland
552
+ '1666', # Malmesbury
553
+ '1667', # Nairn
554
+ '1668', # Bamburgh, Northumberland
555
+ '1669', # Rothbury, Northumberland
211
556
  '1670', # Morpeth
557
+ '1671', # Newton Stewart
558
+ '1672', # Marlborough
559
+ '1673', # Market Rasen
560
+ '1674', # Montrose
561
+ '1675', # Coleshill, Warwickshire, Meriden
562
+ '1676', # Meriden
563
+ '1677', # Bedale, North Riding
564
+ '1678', # Bala, Meirionydd
565
+ '1680', # Craignure, Isle of Mull
566
+ '1681', # Fionnphort, Isle of Mull
567
+ '1683', # Moffat
568
+ '1684', # Malvern
569
+ '1685', # Merthyr Tydfil
570
+ '1686', # Llanidloes and Newtown (ELNS area)
571
+ '1687', # Mallaig
572
+ '1688', # Tobermory, Isle of Mull
573
+ '1689', # Orpington
574
+ '1690', # Betws-y-Coed
575
+ '1691', # Oswestry
576
+ '1692', # North Walsham
577
+ '1694', # Church Stretton
578
+ #1695 Skelmersdale (see [4+6]/[4+5] areas)
212
579
  '1697', # Brampton (Mixed area)
580
+ '1698', # Motherwell
581
+ '1700', # Rothesay
582
+ '1702', # Southend-on-Sea
583
+ '1704', # Southport
584
+ '1706', # Rochdale, Rossendale
585
+ '1707', # Welwyn Garden City, Hatfield and Potters Bar
586
+ '1708', # Romford
587
+ '1709', # Rotherham
588
+ '1720', # Isles of Scilly
589
+ '1721', # Peebles
590
+ '1722', # Salisbury
591
+ '1723', # Scarborough
592
+ '1724', # Scunthorpe
593
+ '1725', # Rockbourne
594
+ #1726 St Austell (see [4+6]/[4+5] areas)
595
+ '1727', # St Albans
596
+ '1728', # Saxmundham
597
+ '1729', # Settle, Ribblesdale
213
598
  '1730', # Petersfield
599
+ '1732', # Sevenoaks
600
+ '1733', # Peterborough
214
601
  '1736', # Penzance
602
+ '1737', # Redhill
603
+ '1738', # Perth
604
+ '1740', # Sedgefield
605
+ '1743', # Shrewsbury
606
+ #1744 St Helens (see [4+6]/[4+5] areas)
607
+ '1745', # Rhyl
608
+ '1746', # Bridgnorth, Shropshire
609
+ '1747', # Shaftesbury
610
+ '1748', # Richmond
611
+ '1749', # Shepton Mallet
612
+ #1750 Selkirk (see [4+6]/[4+5] areas)
613
+ '1751', # Pickering
614
+ '1752', # Plymouth
615
+ '1753', # Slough
616
+ '1754', # Skegness
617
+ '1756', # Skipton
618
+ '1757', # Selby
619
+ '1758', # Pwllheli
620
+ '1759', # Pocklington
621
+ '1760', # Swaffham
622
+ '1761', # Temple Cloud, Somerset
623
+ '1763', # Royston
624
+ '1764', # Crieff, Ruthven
625
+ '1765', # Ripon
626
+ '1766', # Porthmadog
627
+ '1767', # Sandy
628
+ #1768 Penrith (Mixed area) (see [4+6]/[4+5] areas)
629
+ '1769', # South Molton
630
+ '1770', # Isle of Arran
631
+ '1771', # Maud
215
632
  '1772', # Preston
216
- '1853', # Ullapool
633
+ '1773', # Ripley
634
+ '1775', # Spalding
635
+ '1776', # Stranraer
636
+ '1777', # Retford
637
+ '1778', # Market Deeping/Bourne
638
+ '1779', # Peterhead
639
+ '1780', # Stamford
640
+ '1782', # Stoke-on-Trent
641
+ '1784', # Staines
642
+ '1785', # Stafford
643
+ '1786', # Stirling
644
+ '1787', # Sudbury
645
+ '1788', # Rugby
646
+ '1789', # Stratford-upon-Avon
647
+ '1790', # Spilsby
648
+ '1792', # Swansea
649
+ '1793', # Swindon
650
+ '1794', # Romsey
651
+ '1795', # Sittingbourne, Sheppey
652
+ '1796', # Pitlochry
653
+ '1797', # Rye
654
+ '1798', # Pulborough, Sussex
655
+ '1799', # Saffron Walden
656
+ '1803', # Torquay
657
+ '1805', # Torrington
658
+ '1806', # Voe, Shetland
659
+ '1807', # Ballindalloch, Tomintoul
660
+ '1808', # Tomatin
661
+ '1809', # Tomdoun
662
+ '1821', # Kinrossie, Tayside
663
+ '1822', # Tavistock
664
+ '1823', # Taunton
665
+ '1824', # Ruthin, Vale of Clwyd
666
+ '1825', # Uckfield
667
+ #1827 Tamworth (see [4+6]/[4+5] areas)
668
+ '1828', # Coupar Angus, Tayside
669
+ '1829', # Tarporley
670
+ '1830', # Kirkwhelpington
671
+ '1832', # Clopton, Oundle
672
+ '1833', # Barnard Castle, Teesdale
673
+ '1834', # Narberth, Tenby
674
+ '1835', # St Boswells
675
+ #1837 Okehampton (see [4+6]/[4+5] areas)
676
+ '1838', # Dalmally, Tyndrum
677
+ '1840', # Camelford, Tintagel
678
+ '1841', # Padstow, Newquay
679
+ '1842', # Thetford
680
+ '1843', # Thanet
681
+ '1844', # Thame
682
+ '1845', # Thirsk
683
+ '1847', # Thurso and Tongue (ELNS area)
684
+ '1848', # Thornhill
685
+ '1851', # Great Bernera and Stornoway (ELNS area)
686
+ '1852', # Kilmelford
687
+ '1854', # Ullapool
688
+ '1855', # Ballachulish
689
+ '1856', # Orkney
690
+ '1857', # Sanday
691
+ '1858', # Market Harborough
692
+ '1859', # Harris
693
+ '1862', # Tain
694
+ '1863', # Ardgay, Tain
695
+ '1864', # Tinto, Abington, Crawford
696
+ '1865', # Oxford
697
+ '1866', # Kilchrenan
698
+ '1869', # Bicester, Oxfordshire
699
+ '1870', # Isle of Benbecula
700
+ '1871', # Castlebay
701
+ '1872', # Truro
702
+ '1873', # Abergavenny, Usk
703
+ '1874', # Brecon, Usk
704
+ '1875', # Tranent
705
+ '1876', # Lochmaddy
706
+ '1877', # Callander, Trossachs
707
+ '1878', # Lochboisdale
708
+ '1879', # Scarinish, Tiree
709
+ '1880', # Tarbert
710
+ '1882', # Kinloch Rannoch, Tummel Bridge
711
+ '1883', # Caterham
712
+ #1884 Tiverton (see [4+6]/[4+5] areas)
713
+ '1885', # Pencombe
714
+ '1886', # Bromyard, Teme Valley
715
+ '1887', # Aberfeldy, Tay Valley
716
+ '1888', # Turriff
717
+ '1889', # Rugeley, Uttoxeter
718
+ '1890', # Ayton, Berwickshire and Coldstream, Tweed (ELNS area)
719
+ '1892', # Tunbridge Wells
720
+ '1895', # Uxbridge
721
+ '1896', # Galashiels, Tweed
722
+ '1899', # Biggar, Tweed
723
+ #1900 Workington (see [4+6]/[4+5] areas)
724
+ '1902', # Wolverhampton
725
+ '1903', # Worthing
726
+ '1904', # York
727
+ #1905 Worcester (see [4+6]/[4+5] areas)
728
+ '1908', # Milton Keynes, Wolverton
729
+ '1909', # Worksop
730
+ '1920', # Ware
731
+ '1922', # Walsall
732
+ '1923', # Watford
733
+ '1924', # Wakefield
734
+ '1925', # Warrington
735
+ '1926', # Warwick
736
+ '1928', # Runcorn, Warrington
737
+ '1929', # Wareham
738
+ '1931', # Shap, Westmorland
739
+ '1932', # Weybridge
740
+ '1933', # Wellingborough
741
+ '1934', # Weston-super-Mare
742
+ #1935 Yeovil (see [4+6]/[4+5] areas)
743
+ '1937', # Wetherby
744
+ '1938', # Welshpool
745
+ '1939', # Wem
746
+ '1942', # Wigan
747
+ '1943', # Guiseley, Wharfedale
748
+ '1944', # West Heslerton
749
+ '1945', # Wisbech
750
+ #1946 Whitehaven (Mixed area) (see [4+6]/[4+5] areas)
217
751
  '1947', # Whitby
218
- # and 500 others
219
- ].flatten
752
+ '1948', # Whitchurch
753
+ #1949 Whatton (see [4+6]/[4+5] areas)
754
+ '1950', # Sandwick, Yell
755
+ '1951', # Colonsay
756
+ '1952', # Telford, Wellington
757
+ '1953', # Wymondham
758
+ '1954', # Madingley, Willingham
759
+ '1955', # Wick
760
+ '1957', # Mid Yell, Yell
761
+ '1959', # Westerham, West Kent
762
+ '1962', # Winchester
763
+ #1963 Wincanton (see [4+6]/[4+5] areas)
764
+ '1964', # Hornsea and Patrington, Withernsea (ELNS area)
765
+ '1967', # Strontian
766
+ '1968', # Penicuik, West Linton
767
+ '1969', # Leyburn, Wensleydale
768
+ '1970', # Aberystwyth, Ystwyth
769
+ '1971', # Scourie, Wrath
770
+ '1972', # Glenborrodale
771
+ '1974', # Llanon, Ystwyth
772
+ '1975', # Alford, Aberdeenshire and Strathdon, Water (ELNS area)
773
+ '1977', # Pontefract, West Riding
774
+ '1978', # Wrexham
775
+ '1980', # Amesbury, Wiltshire
776
+ '1981', # Wormbridge
777
+ '1982', # Builth Wells
778
+ '1983', # Isle of Wight
779
+ '1984', # Watchet, Williton
780
+ '1985', # Warminster
781
+ '1986', # Bungay, Waveney
782
+ '1987', # Ebbsfleet
783
+ '1988', # Wigtown
784
+ '1989', # Ross-on-Wye, Wye
785
+ '1992', # Lea Valley, Waltham Cross
786
+ '1993', # Witney
787
+ '1994', # St Clears, West Wales
788
+ #1995 Garstang, Wyre (see [4+6]/[4+5] areas)
789
+ '1997', # Strathpeffer, Wyvis
790
+ ]
220
791
 
221
792
  Phony.define do
222
- country '44', one_of(two_digit_ndc) >> split(4,4) | # 2-4-4
223
- match(/^([58]00)\d{6}$/) >> split(6) | # Special handling for 500 and 800: 3-6 numbers.
224
- one_of(three_digit_ndc) >> split(3,4) | # 3-3-4
225
- match(/^(16977)\d{4}$/) >> split(4) | # Special handling for 16977: 5-4 numbers.
226
- one_of(five_digit_ndc) >> split(5) | # 5-5
227
- one_of(no_split) >> split(6) | # 4-6 and 4-5
228
- fixed(4) >> split(6) # Catchall for 4-6 numbers.
793
+ country '44', one_of(mobile_ndc) >> split(6) | # 4-6
794
+ one_of(two_digit_ndc) >> split(4,4) | # 2-4-4
795
+ match(/^([58]00)\d{6}$/) >> split(6) | # 3-6, Special handling for 500 and 800.
796
+ one_of(three_digit_ndc) >> split(3,4) | # 3-3-4
797
+ match(/^(16977)\d{4}$/) >> split(4) | # 5-4, Special handling for 16977.
798
+ one_of(five_digit_ndc) >> split(5) | # 5-5
799
+ one_of(variable_length_number) >> split(6) | # 4-6 and 4-5, in 40 areas.
800
+ one_of(four_digit_ndc) >> split(6) | # 4-6
801
+ fixed(4) >> split(6) # Catchall for undefined numbers.
229
802
  end
@@ -547,33 +547,60 @@ describe 'country descriptions' do
547
547
  it { Phony.split('256464441234').should == ['256', '464', '441234'] } # Mubende
548
548
  end
549
549
  describe 'The UK' do
550
- it { Phony.split('442075671113').should == ['44', '20', '7567', '1113'] } # London
551
- it { Phony.split('442920229901').should == ['44', '29', '2022', '9901'] } # Cardiff
552
- it { Phony.split('441134770011').should == ['44', '113', '477', '0011'] } # Leeds
553
- it { Phony.split('441412770022').should == ['44', '141', '277', '0022'] } # Glasgow
554
- it { Phony.split('441204500532').should == ['44', '1204', '500532'] } # Bolton
555
- it { Phony.split('44120462532').should == ['44', '1204', '62532'] } # Bolton
556
- it { Phony.split('441382229845').should == ['44', '1382', '229845'] } # Dundee
557
- it { Phony.split('441539248756').should == ['44', '1539', '248756'] } # Kendal
558
- it { Phony.split('441539648788').should == ['44', '15396', '48788'] } # Sedbergh
559
- it { Phony.split('441697222555').should == ['44', '1697', '222555'] } # Brampton
560
- it { Phony.split('441697388555').should == ['44', '16973', '88555'] } # Wigton
561
- it { Phony.split('44169772333').should == ['44', '16977', '2333'] } # Brampton
562
- it { Phony.split('441697744888').should == ['44', '16977', '44888'] } # Brampton
563
- it { Phony.split('441946555777').should == ['44', '1946', '555777'] } # Whitehaven
564
- it { Phony.split('44194662888').should == ['44', '1946', '62888'] } # Whitehaven
565
- it { Phony.split('441946722444').should == ['44', '19467', '22444'] } # Gosforth
566
- it { Phony.split('443005878323').should == ['44', '300', '587', '8323'] } # Non-geographic
567
- it { Phony.split('443457777334').should == ['44', '345', '777', '7334'] } # Non-geographic
568
- it { Phony.split('44500557788').should == ['44', '500', '557788'] } # Freefone 500 + 6
569
- it { Phony.split('445575671113').should == ['44', '55', '7567', '1113'] } # Corporate
550
+ it { Phony.split('442075671113').should == ['44', '20', '7567', '1113'] } # [2+8] London
551
+ it { Phony.split('442920229901').should == ['44', '29', '2022', '9901'] } # [2+8] Cardiff
552
+ it { Phony.split('441134770011').should == ['44', '113', '477', '0011'] } # [3+7] Leeds
553
+ it { Phony.split('441412770022').should == ['44', '141', '277', '0022'] } # [3+7] Glasgow
554
+ it { Phony.split('441204500532').should == ['44', '1204', '500532'] } # [4+6] Bolton
555
+ it { Phony.split('44120462532').should == ['44', '1204', '62532'] } # [4+5] Bolton
556
+ it { Phony.split('441333247700').should == ['44', '1333', '247700'] } # [4+6] Leven (Fife)
557
+ it { Phony.split('441382229845').should == ['44', '1382', '229845'] } # [4+6] Dundee
558
+ it { Phony.split('441420700378').should == ['44', '1420', '700378'] } # [4+6] Alton
559
+ it { Phony.split('44142080378').should == ['44', '1420', '80378'] } # [4+5] Alton
560
+ it { Phony.split('441475724688').should == ['44', '1475', '724688'] } # [4+6] Greenock
561
+ it { Phony.split('441539248756').should == ['44', '1539', '248756'] } # [4+6] Kendal (Mixed area)
562
+ it { Phony.split('441539648788').should == ['44', '15396', '48788'] } # [5+5] Sedbergh (Mixed area)
563
+ it { Phony.split('441652757248').should == ['44', '1652', '757248'] } # [4+6] Brigg
564
+ it { Phony.split('441664333456').should == ['44', '1664', '333456'] } # [4+6] Melton Mowbray
565
+ it { Phony.split('441697222555').should == ['44', '1697', '222555'] } # [4+6] Brampton (Mixed area)
566
+ it { Phony.split('441697388555').should == ['44', '16973', '88555'] } # [5+5] Wigton (Mixed area)
567
+ it { Phony.split('441697433777').should == ['44', '16974', '33777'] } # [5+5] Raughton Head (Mixed area)
568
+ it { Phony.split('44169772333').should == ['44', '16977', '2333'] } # [5+4] Brampton (Mixed area)
569
+ it { Phony.split('441697744888').should == ['44', '16977', '44888'] } # [5+5] Brampton (Mixed area)
570
+ it { Phony.split('441757850526').should == ['44', '1757', '850526'] } # [4+6] Selby
571
+ it { Phony.split('441890234567').should == ['44', '1890', '234567'] } # [4+6] Coldstream (ELNS area)
572
+ it { Phony.split('441890595378').should == ['44', '1890', '595378'] } # [4+6] Ayton (ELNS area)
573
+ it { Phony.split('441931306526').should == ['44', '1931', '306526'] } # [4+6] Shap
574
+ it { Phony.split('441946555777').should == ['44', '1946', '555777'] } # [4+6] Whitehaven (Mixed area)
575
+ it { Phony.split('44194662888').should == ['44', '1946', '62888'] } # [4+5] Whitehaven (Mixed area)
576
+ it { Phony.split('441946722444').should == ['44', '19467', '22444'] } # [5+5] Gosforth (Mixed area)
577
+ it { Phony.split('441987705337').should == ['44', '1987', '705337'] } # [4+6] Ebbsfleet
578
+ it { Phony.split('443005828323').should == ['44', '300', '582', '8323'] } # Non-geographic (NTS)
579
+ it { Phony.split('443334253344').should == ['44', '333', '425', '3344'] } # Non-geographic (NTS)
580
+ it { Phony.split('443437658834').should == ['44', '343', '765', '8834'] } # Non-geographic (NTS)
581
+ it { Phony.split('443452273512').should == ['44', '345', '227', '3512'] } # Non-geographic (NTS)
582
+ it { Phony.split('443707774444').should == ['44', '370', '777', '4444'] } # Non-geographic (NTS)
583
+ it { Phony.split('443725247722').should == ['44', '372', '524', '7722'] } # Non-geographic (NTS)
584
+ it { Phony.split('44500557788').should == ['44', '500', '557788'] } # Freefone (500 + 6)
585
+ it { Phony.split('445575671113').should == ['44', '55', '7567', '1113'] } # Corporate numbers
570
586
  it { Phony.split('445644775533').should == ['44', '56', '4477', '5533'] } # LIECS/VoIP
571
587
  it { Phony.split('447020229901').should == ['44', '70', '2022', '9901'] } # Personal numbers
572
- it { Phony.split('447780605207').should == ['44', '7780', '605207'] } # Mobile
588
+ it { Phony.split('447688554246').should == ['44', '76', '8855', '4246'] } # Pager
589
+ it { Phony.split('447180605207').should == ['44', '7180', '605207'] } # Mobile
573
590
  it { Phony.split('447480605207').should == ['44', '7480', '605207'] } # Mobile
574
- it { Phony.split('44800557788').should == ['44', '800', '557788'] } # Freefone 800 + 6
575
- it { Phony.split('448084682355').should == ['44', '808', '468', '2355'] } # Freefone
576
- it { Phony.split('448005878323').should == ['44', '800', '587', '8323'] } # Freefone, regression
591
+ it { Phony.split('447624605207').should == ['44', '7624', '605207'] } # Mobile (Isle of Man)
592
+ it { Phony.split('447780605207').should == ['44', '7780', '605207'] } # Mobile
593
+ it { Phony.split('447980605207').should == ['44', '7980', '605207'] } # Mobile
594
+ it { Phony.split('44800557788').should == ['44', '800', '557788'] } # Freefone (800 + 6)
595
+ it { Phony.split('448084682355').should == ['44', '808', '468', '2355'] } # Freefone (808 + 7)
596
+ it { Phony.split('448005878323').should == ['44', '800', '587', '8323'] } # Freefone (800 + 7), regression
597
+ it { Phony.split('448437777334').should == ['44', '843', '777', '7334'] } # Non-geographic (NTS)
598
+ it { Phony.split('448457777334').should == ['44', '845', '777', '7334'] } # Non-geographic (NTS)
599
+ it { Phony.split('448707777334').should == ['44', '870', '777', '7334'] } # Non-geographic (NTS)
600
+ it { Phony.split('448727777334').should == ['44', '872', '777', '7334'] } # Non-geographic (NTS)
601
+ it { Phony.split('449052463456').should == ['44', '905', '246', '3456'] } # Non-geographic (PRS)
602
+ it { Phony.split('449122463456').should == ['44', '912', '246', '3456'] } # Non-geographic (PRS)
603
+ it { Phony.split('449832463456').should == ['44', '983', '246', '3456'] } # Non-geographic (SES)
577
604
  end
578
605
  describe 'US' do
579
606
  it { Phony.split('15551115511').should == ['1', '555', '111', '5511'] }
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phony
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.beta4
5
- prerelease: 6
4
+ version: 2.0.0.beta5
6
5
  platform: ruby
7
6
  authors:
8
7
  - Florian Hanke
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-05-25 00:00:00.000000000 Z
11
+ date: 2013-05-27 00:00:00.000000000 Z
13
12
  dependencies: []
14
13
  description: ! 'Fast international phone number (E164 standard) normalizing, splitting
15
14
  and formatting. Lots of formatting options: International (+.., 00..), national
@@ -87,27 +86,26 @@ files:
87
86
  - spec/lib/phony_spec.rb
88
87
  homepage: http://github.com/floere/phony
89
88
  licenses: []
89
+ metadata: {}
90
90
  post_install_message:
91
91
  rdoc_options: []
92
92
  require_paths:
93
93
  - lib
94
94
  required_ruby_version: !ruby/object:Gem::Requirement
95
- none: false
96
95
  requirements:
97
96
  - - ! '>='
98
97
  - !ruby/object:Gem::Version
99
98
  version: '0'
100
99
  required_rubygems_version: !ruby/object:Gem::Requirement
101
- none: false
102
100
  requirements:
103
101
  - - ! '>'
104
102
  - !ruby/object:Gem::Version
105
103
  version: 1.3.1
106
104
  requirements: []
107
105
  rubyforge_project:
108
- rubygems_version: 1.8.10
106
+ rubygems_version: 2.0.3
109
107
  signing_key:
110
- specification_version: 3
108
+ specification_version: 4
111
109
  summary: Fast international phone number (E164 standard) normalizing, splitting and
112
110
  formatting.
113
111
  test_files: