phony 2.20.13 → 2.20.15
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/phony/config.rb +25 -26
- data/lib/phony/countries/argentina.rb +311 -314
- data/lib/phony/countries/austria.rb +71 -72
- data/lib/phony/countries/bangladesh.rb +27 -28
- data/lib/phony/countries/belarus.rb +110 -111
- data/lib/phony/countries/brazil.rb +92 -92
- data/lib/phony/countries/cambodia.rb +9 -9
- data/lib/phony/countries/china.rb +22 -21
- data/lib/phony/countries/croatia.rb +6 -5
- data/lib/phony/countries/georgia.rb +84 -84
- data/lib/phony/countries/germany.rb +4067 -4068
- data/lib/phony/countries/guinea.rb +8 -8
- data/lib/phony/countries/india.rb +31 -34
- data/lib/phony/countries/indonesia.rb +57 -46
- data/lib/phony/countries/ireland.rb +4 -5
- data/lib/phony/countries/italy.rb +54 -53
- data/lib/phony/countries/japan.rb +456 -456
- data/lib/phony/countries/kyrgyzstan.rb +109 -109
- data/lib/phony/countries/latvia.rb +34 -34
- data/lib/phony/countries/libya.rb +106 -106
- data/lib/phony/countries/malaysia.rb +12 -12
- data/lib/phony/countries/moldova.rb +42 -42
- data/lib/phony/countries/montenegro.rb +24 -20
- data/lib/phony/countries/myanmar.rb +39 -39
- data/lib/phony/countries/namibia.rb +35 -29
- data/lib/phony/countries/nepal.rb +60 -62
- data/lib/phony/countries/netherlands.rb +13 -13
- data/lib/phony/countries/pakistan.rb +135 -111
- data/lib/phony/countries/paraguay.rb +135 -135
- data/lib/phony/countries/russia_kazakhstan_abkhasia_south_ossetia.rb +125 -128
- data/lib/phony/countries/saudi_arabia.rb +5 -5
- data/lib/phony/countries/serbia.rb +47 -39
- data/lib/phony/countries/somalia.rb +18 -18
- data/lib/phony/countries/south_korea.rb +16 -13
- data/lib/phony/countries/sweden.rb +28 -28
- data/lib/phony/countries/taiwan.rb +20 -19
- data/lib/phony/countries/tajikistan.rb +70 -70
- data/lib/phony/countries/turkmenistan.rb +65 -65
- data/lib/phony/countries/ukraine.rb +607 -607
- data/lib/phony/countries/united_kingdom.rb +66 -66
- data/lib/phony/countries/uruguay.rb +40 -41
- data/lib/phony/countries/vietnam.rb +18 -17
- data/lib/phony/countries/zimbabwe.rb +31 -31
- data/lib/phony/countries.rb +440 -443
- data/lib/phony/country.rb +42 -44
- data/lib/phony/country_codes.rb +61 -60
- data/lib/phony/dsl.rb +23 -26
- data/lib/phony/local_splitters/fixed.rb +20 -29
- data/lib/phony/local_splitters/regex.rb +28 -31
- data/lib/phony/national_code.rb +7 -10
- data/lib/phony/national_splitters/default.rb +9 -11
- data/lib/phony/national_splitters/dsl.rb +8 -18
- data/lib/phony/national_splitters/fixed.rb +11 -14
- data/lib/phony/national_splitters/none.rb +7 -11
- data/lib/phony/national_splitters/regex.rb +13 -17
- data/lib/phony/national_splitters/variable.rb +36 -38
- data/lib/phony/trunk_code.rb +16 -18
- data/lib/phony/vanity.rb +12 -13
- data/lib/phony.rb +84 -84
- metadata +5 -39
- data/spec/functional/config_spec.rb +0 -44
- data/spec/functional/plausibility_spec.rb +0 -689
- data/spec/lib/phony/countries_spec.rb +0 -1459
- data/spec/lib/phony/country_codes_spec.rb +0 -227
- data/spec/lib/phony/country_spec.rb +0 -104
- data/spec/lib/phony/dsl_spec.rb +0 -28
- data/spec/lib/phony/local_splitters/fixed_spec.rb +0 -56
- data/spec/lib/phony/local_splitters/regex_spec.rb +0 -94
- data/spec/lib/phony/national_code_spec.rb +0 -61
- data/spec/lib/phony/national_splitters/default_spec.rb +0 -34
- data/spec/lib/phony/national_splitters/fixed_spec.rb +0 -45
- data/spec/lib/phony/national_splitters/none_spec.rb +0 -28
- data/spec/lib/phony/national_splitters/regex_spec.rb +0 -23
- data/spec/lib/phony/national_splitters/variable_spec.rb +0 -35
- data/spec/lib/phony/trunk_code_spec.rb +0 -85
- data/spec/lib/phony/vanity_spec.rb +0 -30
- data/spec/lib/phony_spec.rb +0 -70
@@ -4,85 +4,84 @@
|
|
4
4
|
#
|
5
5
|
ndcs = [
|
6
6
|
# '1', # Vienna
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
7
|
+
'89', # Routing Number
|
8
|
+
'316', # Graz
|
9
|
+
'463', # Klagenfurt
|
10
|
+
'512', # Innsbruck
|
11
|
+
'662', # Salzburg
|
12
|
+
'732' # Linz
|
13
13
|
]
|
14
14
|
|
15
|
-
corporate_2digit = [
|
16
|
-
|
17
|
-
|
15
|
+
corporate_2digit = %w[
|
16
|
+
57
|
17
|
+
59
|
18
18
|
]
|
19
19
|
|
20
|
-
corporate = [
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
20
|
+
corporate = %w[
|
21
|
+
501
|
22
|
+
502
|
23
|
+
503
|
24
|
+
504
|
25
|
+
505
|
26
|
+
506
|
27
|
+
507
|
28
|
+
508
|
29
|
+
509
|
30
|
+
517
|
31
31
|
]
|
32
32
|
|
33
|
-
mobile = [
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
33
|
+
mobile = %w[
|
34
|
+
644
|
35
|
+
650
|
36
|
+
651
|
37
|
+
652
|
38
|
+
653
|
39
|
+
655
|
40
|
+
657
|
41
|
+
659
|
42
|
+
660
|
43
|
+
661
|
44
|
+
664
|
45
|
+
665
|
46
|
+
666
|
47
|
+
667
|
48
|
+
668
|
49
|
+
669
|
50
|
+
670
|
51
|
+
676
|
52
|
+
677
|
53
|
+
678
|
54
|
+
680
|
55
|
+
681
|
56
|
+
688
|
57
|
+
690
|
58
|
+
699
|
59
59
|
]
|
60
60
|
|
61
|
-
mobile_2digit = [
|
62
|
-
|
63
|
-
|
64
|
-
|
61
|
+
mobile_2digit = %w[
|
62
|
+
67
|
63
|
+
68
|
64
|
+
69
|
65
65
|
]
|
66
66
|
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
'939'
|
67
|
+
service = %w[
|
68
|
+
710
|
69
|
+
711
|
70
|
+
718
|
71
|
+
730
|
72
|
+
740
|
73
|
+
780
|
74
|
+
802
|
75
|
+
804
|
76
|
+
810
|
77
|
+
820
|
78
|
+
821
|
79
|
+
828
|
80
|
+
900
|
81
|
+
901
|
82
|
+
930
|
83
|
+
931
|
84
|
+
939
|
86
85
|
]
|
87
86
|
|
88
87
|
# https://www.rtr.at/en/tk/E129/Austrian_Numbering_Plan_2011-03-30.pdf
|
@@ -99,7 +98,7 @@ Phony.define do
|
|
99
98
|
one_of(corporate) >> split(2..10) | # Corporate number length is 5..13
|
100
99
|
one_of(ndcs) >> split(5..10) |
|
101
100
|
one_of('663') >> split(6..8) | # 6..8 digit mobile.
|
102
|
-
one_of(mobile) >> split(4,3..9) |
|
103
|
-
one_of(mobile_2digit) >> split(7..7)
|
104
|
-
fixed(4) >> split(3..9)
|
101
|
+
one_of(mobile) >> split(4, 3..9) |
|
102
|
+
one_of(mobile_2digit) >> split(7..7) | # Separate as mobile contains 676 - 67 violates the prefix rule.
|
103
|
+
fixed(4) >> split(3..9) # Number length is 7..13.
|
105
104
|
end
|
@@ -3,38 +3,38 @@
|
|
3
3
|
# Bangladesh (People's Republic of)
|
4
4
|
# https://www.numberingplans.com
|
5
5
|
|
6
|
-
ndcs_with_3_subscriber_numbers = %w
|
7
|
-
3035 3036 3224 3424 3427 3529 3823 4027 4222 4225 4425 4525 4623 4653 4658
|
8
|
-
5222 5323 5327 5526 6257 7022 7622 8023 8032 8332 8424 8528 8626 9423 9424
|
9
|
-
|
6
|
+
ndcs_with_3_subscriber_numbers = %w[
|
7
|
+
3035 3036 3224 3424 3427 3529 3823 4027 4222 4225 4425 4525 4623 4653 4658
|
8
|
+
5222 5323 5327 5526 6257 7022 7622 8023 8032 8332 8424 8528 8626 9423 9424
|
9
|
+
]
|
10
10
|
|
11
|
-
ndcs_with_4_subscriber_numbers = %w
|
12
|
-
3020 3022 3023 3024 3025 3026 3027 3028 3029 3032 3033 3034 3035 3036 3221 3222 3223 3225
|
13
|
-
3322 3323 3324 3325 3326 3422 3824 4020 4029 4222 4223 4224 4225 4226 4227 4228
|
14
|
-
4320 4322 4323 4324 4325 4326 4327 4328 4329 4523 4653 4654 4655 4657 4624 4626 4627
|
15
|
-
4953 6024 6622 6655 7323 7324 7325 7327 7328 7522 7523 7524 7525 7526 7527 7528 7529
|
16
|
-
8020 8022 8023 8024 8025 8026 8027 8028 8029 8032 8033 8424 8425 8426 8427 8522 8523 8524 8525 8526 8527
|
17
|
-
|
11
|
+
ndcs_with_4_subscriber_numbers = %w[
|
12
|
+
3020 3022 3023 3024 3025 3026 3027 3028 3029 3032 3033 3034 3035 3036 3221 3222 3223 3225
|
13
|
+
3322 3323 3324 3325 3326 3422 3824 4020 4029 4222 4223 4224 4225 4226 4227 4228
|
14
|
+
4320 4322 4323 4324 4325 4326 4327 4328 4329 4523 4653 4654 4655 4657 4624 4626 4627
|
15
|
+
4953 6024 6622 6655 7323 7324 7325 7327 7328 7522 7523 7524 7525 7526 7527 7528 7529
|
16
|
+
8020 8022 8023 8024 8025 8026 8027 8028 8029 8032 8033 8424 8425 8426 8427 8522 8523 8524 8525 8526 8527
|
17
|
+
]
|
18
18
|
|
19
19
|
ndcs_with_5_subscriber_numbers = {
|
20
|
-
2 => %w
|
21
|
-
3 => %w
|
22
|
-
488 498 521 531 541 551 561 571 581 591 628 601 631 641 651 661 668
|
23
|
-
691 731 741 751 761 771 781 791 831 841 851 861 871 921 931 941 951 981
|
24
|
-
4 => %w
|
25
|
-
4033 4226 4227 4322 4323 4326 4327 4328 4422 4423 4424 4426 4455 4624 4625 4626 4655 4656 4657 4823 4854 4922 4924 4925 4953
|
26
|
-
5020 5023 5024 5028 5029 5224 5225 5227 5323 5325 5326 5329 5424 5426 5526 5653 5724 5826
|
27
|
-
6023 6024 6222 6224 6225 6253 6254 6255 6323 6324 6327 6328 6423 6424 6524 6527 6623 6624 6652 6653 6654 6655
|
28
|
-
6722 6723 6724 6725 6822 6823 6824 6825 6922 6923 6924 6925 6926
|
29
|
-
7225 7227 7228 7229 7324 7326 7327 7329 7425 7426 7522 7525 7526 7528 7529 7724 7823 7825 7923
|
30
|
-
8020 8022 8026 8029 8220 8222 8223 8224 8225 8226 8227 8229 8232 8325 8327 8328 8425 8426 8427 8522 8523 8524
|
31
|
-
8622 8623 8624 8625 8626 8723 8725 8727
|
32
|
-
9020 9022 9024 9025 9027 9028 9032 9033 9222 9223 9225 9226 9227 9228 9229 9232 9233 9424 9426 9428 9524 9525 9528 9529 9824 9827
|
20
|
+
2 => %w[51 71 81 91],
|
21
|
+
3 => %w[321 331 341 351 361 371 381 441 448 421 451 461 471 481 491 468
|
22
|
+
488 498 521 531 541 551 561 571 581 591 628 601 631 641 651 661 668
|
23
|
+
691 731 741 751 761 771 781 791 831 841 851 861 871 921 931 941 951 981],
|
24
|
+
4 => %w[3023 3024 3028 3223 3225 3324 3422 3425 3822
|
25
|
+
4033 4226 4227 4322 4323 4326 4327 4328 4422 4423 4424 4426 4455 4624 4625 4626 4655 4656 4657 4823 4854 4922 4924 4925 4953
|
26
|
+
5020 5023 5024 5028 5029 5224 5225 5227 5323 5325 5326 5329 5424 5426 5526 5653 5724 5826
|
27
|
+
6023 6024 6222 6224 6225 6253 6254 6255 6323 6324 6327 6328 6423 6424 6524 6527 6623 6624 6652 6653 6654 6655
|
28
|
+
6722 6723 6724 6725 6822 6823 6824 6825 6922 6923 6924 6925 6926
|
29
|
+
7225 7227 7228 7229 7324 7326 7327 7329 7425 7426 7522 7525 7526 7528 7529 7724 7823 7825 7923
|
30
|
+
8020 8022 8026 8029 8220 8222 8223 8224 8225 8226 8227 8229 8232 8325 8327 8328 8425 8426 8427 8522 8523 8524
|
31
|
+
8622 8623 8624 8625 8626 8723 8725 8727
|
32
|
+
9020 9022 9024 9025 9027 9028 9032 9033 9222 9223 9225 9226 9227 9228 9229 9232 9233 9424 9426 9428 9524 9525 9528 9529 9824 9827]
|
33
33
|
}
|
34
34
|
|
35
|
-
ndcs_with_6_subscriber_numbers = {2 => %w
|
35
|
+
ndcs_with_6_subscriber_numbers = {2 => %w[31 41], 3 => %w[721 821]}
|
36
36
|
|
37
|
-
ndcs_with_7_subscriber_numbers = {1 => %w
|
37
|
+
ndcs_with_7_subscriber_numbers = {1 => %w[2], 3 => %w[431]}
|
38
38
|
|
39
39
|
Phony.define do
|
40
40
|
country '880',
|
@@ -42,7 +42,6 @@ Phony.define do
|
|
42
42
|
match(/\A(#{ndcs_with_3_subscriber_numbers.join('|')})\d{3}\z/) >> split(3) |
|
43
43
|
match(/\A(#{ndcs_with_4_subscriber_numbers.join('|')})\d{4}\z/) >> split(4) |
|
44
44
|
match(/\A(#{ndcs_with_5_subscriber_numbers[4].join('|')})\d{5}\z/) >> split(5) |
|
45
|
-
#
|
46
45
|
one_of(ndcs_with_3_subscriber_numbers) >> split(3) |
|
47
46
|
one_of(ndcs_with_4_subscriber_numbers) >> split(4) |
|
48
47
|
one_of(ndcs_with_5_subscriber_numbers[2]) >> split(5) |
|
@@ -54,4 +53,4 @@ Phony.define do
|
|
54
53
|
one_of(ndcs_with_7_subscriber_numbers[3]) >> split(7) |
|
55
54
|
# match(/\A(1[15-9])\d{8}\z/) >> split(8) # mobile
|
56
55
|
fixed(2) >> split(8) # mobile
|
57
|
-
end
|
56
|
+
end
|
@@ -4,115 +4,115 @@
|
|
4
4
|
# http://www.eng.beltelecom.by/en/subscribers/phone-codes
|
5
5
|
# https://www.numberingplans.com
|
6
6
|
|
7
|
-
ndcs_with_5_subscriber_digits = %w
|
8
|
-
1511
|
9
|
-
1512
|
10
|
-
1513
|
11
|
-
1514
|
12
|
-
1515
|
13
|
-
1562
|
14
|
-
1563
|
15
|
-
1564
|
16
|
-
1591
|
17
|
-
1592
|
18
|
-
1593
|
19
|
-
1594
|
20
|
-
1595
|
21
|
-
1596
|
22
|
-
1597
|
23
|
-
1631
|
24
|
-
1632
|
25
|
-
1633
|
26
|
-
1641
|
27
|
-
1642
|
28
|
-
1643
|
29
|
-
1644
|
30
|
-
1645
|
31
|
-
1646
|
32
|
-
1647
|
33
|
-
1651
|
34
|
-
1652
|
35
|
-
1655
|
36
|
-
1713
|
37
|
-
1714
|
38
|
-
1715
|
39
|
-
1716
|
40
|
-
1717
|
41
|
-
1718
|
42
|
-
1719
|
43
|
-
1770
|
44
|
-
1771
|
45
|
-
1772
|
46
|
-
1774
|
47
|
-
1775
|
48
|
-
1776
|
49
|
-
1792
|
50
|
-
1793
|
51
|
-
1794
|
52
|
-
1795
|
53
|
-
1796
|
54
|
-
1797
|
55
|
-
2130
|
56
|
-
2131
|
57
|
-
2132
|
58
|
-
2133
|
59
|
-
2135
|
60
|
-
2136
|
61
|
-
2137
|
62
|
-
2138
|
63
|
-
2139
|
64
|
-
2151
|
65
|
-
2152
|
66
|
-
2153
|
67
|
-
2154
|
68
|
-
2155
|
69
|
-
2156
|
70
|
-
2157
|
71
|
-
2158
|
72
|
-
2159
|
73
|
-
2230
|
74
|
-
2231
|
75
|
-
2232
|
76
|
-
2233
|
77
|
-
2234
|
78
|
-
2235
|
79
|
-
2236
|
80
|
-
2237
|
81
|
-
2238
|
82
|
-
2239
|
83
|
-
2240
|
84
|
-
2241
|
85
|
-
2242
|
86
|
-
2243
|
87
|
-
2244
|
88
|
-
2245
|
89
|
-
2246
|
90
|
-
2247
|
91
|
-
2248
|
92
|
-
2330
|
93
|
-
2332
|
94
|
-
2333
|
95
|
-
2334
|
96
|
-
2336
|
97
|
-
2337
|
98
|
-
2339
|
99
|
-
2340
|
100
|
-
2342
|
101
|
-
2344
|
102
|
-
2345
|
103
|
-
2346
|
104
|
-
2347
|
105
|
-
2350
|
106
|
-
2353
|
107
|
-
2354
|
108
|
-
2355
|
109
|
-
2356
|
110
|
-
2357
|
111
|
-
|
7
|
+
ndcs_with_5_subscriber_digits = %w[
|
8
|
+
1511
|
9
|
+
1512
|
10
|
+
1513
|
11
|
+
1514
|
12
|
+
1515
|
13
|
+
1562
|
14
|
+
1563
|
15
|
+
1564
|
16
|
+
1591
|
17
|
+
1592
|
18
|
+
1593
|
19
|
+
1594
|
20
|
+
1595
|
21
|
+
1596
|
22
|
+
1597
|
23
|
+
1631
|
24
|
+
1632
|
25
|
+
1633
|
26
|
+
1641
|
27
|
+
1642
|
28
|
+
1643
|
29
|
+
1644
|
30
|
+
1645
|
31
|
+
1646
|
32
|
+
1647
|
33
|
+
1651
|
34
|
+
1652
|
35
|
+
1655
|
36
|
+
1713
|
37
|
+
1714
|
38
|
+
1715
|
39
|
+
1716
|
40
|
+
1717
|
41
|
+
1718
|
42
|
+
1719
|
43
|
+
1770
|
44
|
+
1771
|
45
|
+
1772
|
46
|
+
1774
|
47
|
+
1775
|
48
|
+
1776
|
49
|
+
1792
|
50
|
+
1793
|
51
|
+
1794
|
52
|
+
1795
|
53
|
+
1796
|
54
|
+
1797
|
55
|
+
2130
|
56
|
+
2131
|
57
|
+
2132
|
58
|
+
2133
|
59
|
+
2135
|
60
|
+
2136
|
61
|
+
2137
|
62
|
+
2138
|
63
|
+
2139
|
64
|
+
2151
|
65
|
+
2152
|
66
|
+
2153
|
67
|
+
2154
|
68
|
+
2155
|
69
|
+
2156
|
70
|
+
2157
|
71
|
+
2158
|
72
|
+
2159
|
73
|
+
2230
|
74
|
+
2231
|
75
|
+
2232
|
76
|
+
2233
|
77
|
+
2234
|
78
|
+
2235
|
79
|
+
2236
|
80
|
+
2237
|
81
|
+
2238
|
82
|
+
2239
|
83
|
+
2240
|
84
|
+
2241
|
85
|
+
2242
|
86
|
+
2243
|
87
|
+
2244
|
88
|
+
2245
|
89
|
+
2246
|
90
|
+
2247
|
91
|
+
2248
|
92
|
+
2330
|
93
|
+
2332
|
94
|
+
2333
|
95
|
+
2334
|
96
|
+
2336
|
97
|
+
2337
|
98
|
+
2339
|
99
|
+
2340
|
100
|
+
2342
|
101
|
+
2344
|
102
|
+
2345
|
103
|
+
2346
|
104
|
+
2347
|
105
|
+
2350
|
106
|
+
2353
|
107
|
+
2354
|
108
|
+
2355
|
109
|
+
2356
|
110
|
+
2357
|
111
|
+
]
|
112
112
|
|
113
|
-
ndcs_with_6_subscriber_digits = %w
|
113
|
+
ndcs_with_6_subscriber_digits = %w[152 154 162 163 165 174 176 177 212 214 216 222 225 232 236 602]
|
114
114
|
|
115
|
-
ndcs_with_7_subscriber_digits = %w
|
115
|
+
ndcs_with_7_subscriber_digits = %w[17 25 29 33 44]
|
116
116
|
|
117
117
|
Phony.define do
|
118
118
|
country '375',
|
@@ -121,13 +121,12 @@ Phony.define do
|
|
121
121
|
one_of(ndcs_with_6_subscriber_digits) >> split(6) |
|
122
122
|
one_of(ndcs_with_7_subscriber_digits) >> split(7) |
|
123
123
|
# not available from abroad
|
124
|
-
one_of(%w
|
125
|
-
one_of(%w
|
126
|
-
one_of(%w
|
124
|
+
one_of(%w[600]) >> split(3) |
|
125
|
+
one_of(%w[606 777 801 803 805 810 902]) >> split(7) |
|
126
|
+
one_of(%w[820]) >> split(8) |
|
127
127
|
# Non-geographic number - Home country direct service
|
128
128
|
# Assigned to Beltelecom - not available from abroad
|
129
129
|
match(/\A(800)\d{3}\z/) >> split(3) |
|
130
130
|
match(/\A(800)\d{4}\z/) >> split(4) |
|
131
131
|
match(/\A(800)\d{7}\z/) >> split(7)
|
132
132
|
end
|
133
|
-
|
@@ -6,102 +6,102 @@
|
|
6
6
|
# NDC Reference
|
7
7
|
# https://www.gov.br/anatel/pt-br/regulado/numeracao/plano-de-numeracao-brasileiro
|
8
8
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
9
|
+
# 11 #Sao Paulo
|
10
|
+
# 12 #Sao Paulo
|
11
|
+
# 13 #Sao Paulo
|
12
|
+
# 14 #Sao Paulo
|
13
|
+
# 15 #Sao Paulo
|
14
|
+
# 16 #Sao Paulo
|
15
|
+
# 17 #Sao Paulo
|
16
|
+
# 18 #Sao Paulo
|
17
|
+
# 19 #Sao Paulo
|
18
|
+
#
|
19
|
+
# 21 #Rio de Janeiro
|
20
|
+
# 22 #Rio de Janeiro
|
21
|
+
#
|
22
|
+
# 24 #Rio de Janeiro
|
23
|
+
#
|
24
|
+
# 27 #Espírito Santo
|
25
|
+
# 28 #Espírito Santo
|
26
|
+
#
|
27
|
+
# 31 #Minas Gerais
|
28
|
+
# 32 #Minas Gerais
|
29
|
+
# 33 #Minas Gerais
|
30
|
+
# 34 #Minas Gerais
|
31
|
+
# 35 #Minas Gerais
|
32
|
+
# 36 #Minas Gerais
|
33
|
+
# 37 #Minas Gerais
|
34
|
+
# 38 #Minas Gerais
|
35
|
+
#
|
36
|
+
# 41 #Paraná
|
37
|
+
# 42 #Paraná
|
38
|
+
# 43 #Paraná
|
39
|
+
# 44 #Paraná
|
40
|
+
# 45 #Paraná
|
41
|
+
# 46 #Paraná
|
42
|
+
# 47 #Santa Catarina
|
43
|
+
# 48 #Santa Catarina
|
44
|
+
# 49 #Santa Catarina
|
45
|
+
#
|
46
|
+
# 51 #Rio Grande do Sul
|
47
|
+
# 52 #Rio Grande do Sul
|
48
|
+
# 53 #Rio Grande do Sul
|
49
|
+
# 54 #Rio Grande do Sul
|
50
|
+
# 55 #Rio Grande do Sul
|
51
|
+
#
|
52
|
+
# 61 #Distrito Federal
|
53
|
+
# 62 #Goiânia
|
54
|
+
# 63 #Tocantins
|
55
|
+
# 64 #Goiânia
|
56
|
+
# 65 #Mato Grosso
|
57
|
+
# 66 #Mato Grosso
|
58
|
+
# 67 #Mato Grosso do Sul
|
59
|
+
# 68 #Acre
|
60
|
+
# 69 #Rondônia
|
61
|
+
#
|
62
|
+
# 71 #Bahia
|
63
|
+
# 72 #Bahia
|
64
|
+
# 73 #Bahia
|
65
|
+
# 74 #Bahia
|
66
|
+
# 75 #Bahia
|
67
|
+
#
|
68
|
+
# 77 #Bahia
|
69
|
+
# 78 #Bahia
|
70
|
+
# 79 #Sergipe
|
71
|
+
#
|
72
|
+
# 81 #Pernambuco
|
73
|
+
# 82 #Alagoas
|
74
|
+
# 83 #Paraíba
|
75
|
+
# 84 #Rio Grande do Norte
|
76
|
+
# 85 #Ceará
|
77
|
+
# 86 #Piauí
|
78
|
+
# 87 #Pernambuco
|
79
|
+
# 88 #Ceará
|
80
|
+
# 89 #Piauí
|
81
|
+
#
|
82
|
+
# 91 #Pará
|
83
|
+
# 92 #Amazonas
|
84
|
+
# 93 #Pará
|
85
|
+
# 94 #Pará
|
86
|
+
# 95 #Roraima
|
87
|
+
# 96 #Amapá
|
88
|
+
# 97 #Amazonas
|
89
|
+
# 98 #Maranhão
|
90
|
+
# 99 #Maranhão
|
91
91
|
|
92
|
-
ndcs =
|
92
|
+
ndcs = '(11|12|13|14|15|16|17|18|19|21|22|24|27|28|31|32|33|34|35|36|37|38|41|42|43|44|45|46|47|48|49|51|52|53|54|55|61|62|63|64|65|66|67|68|69|71|72|73|74|75|77|78|79|81|82|83|84|85|86|87|88|89|91|92|93|94|95|96|97|98|99)'
|
93
93
|
|
94
|
-
service = %w
|
94
|
+
service = %w[100 128 190 191 192 193 194 197 198 199] # State specific numbers were not added. See http://www.brasil.gov.br/navegue_por/aplicativos/agenda
|
95
95
|
|
96
|
-
special_numbers_3_4 = %w
|
97
|
-
special_numbers_4 = %w
|
96
|
+
special_numbers_3_4 = %w[0800]
|
97
|
+
special_numbers_4 = %w[3003 4003 4004 4020]
|
98
98
|
|
99
99
|
Phony.define do
|
100
100
|
country '55',
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
101
|
+
match(/^#{ndcs}9\d{8}$/) >> split(5, 4) |
|
102
|
+
match(/^#{ndcs}[2-5]\d{7}$/) >> split(4, 4) |
|
103
|
+
one_of(special_numbers_3_4) >> split(3, 4) |
|
104
|
+
one_of(special_numbers_4) >> split(4) |
|
105
|
+
one_of(service) >> split(3) |
|
106
|
+
fixed(3) >> split(3)
|
107
107
|
end
|