phony 1.4.0 → 1.4.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/phony.rb +1 -3
- data/lib/phony/countries.rb +399 -1
- data/lib/phony/countries/hungary.rb +2 -2
- data/lib/phony/countries/italy.rb +3 -3
- data/spec/lib/{countries_spec.rb → phony/countries_spec.rb} +0 -0
- metadata +3 -5
- data/lib/countries.rb +0 -399
- data/lib/phony/countries/egypt.rb +0 -17
data/lib/phony.rb
CHANGED
@@ -17,12 +17,10 @@ require File.expand_path '../phony/dsl', __FILE__
|
|
17
17
|
#
|
18
18
|
# The ones that need more space to define.
|
19
19
|
#
|
20
|
-
require File.expand_path '../phony/countries', __FILE__
|
21
20
|
require File.expand_path '../phony/countries/austria', __FILE__
|
22
21
|
require File.expand_path '../phony/countries/belgium', __FILE__
|
23
22
|
require File.expand_path '../phony/countries/chile', __FILE__
|
24
23
|
require File.expand_path '../phony/countries/china', __FILE__
|
25
|
-
require File.expand_path '../phony/countries/egypt', __FILE__
|
26
24
|
require File.expand_path '../phony/countries/germany', __FILE__
|
27
25
|
require File.expand_path '../phony/countries/greece', __FILE__
|
28
26
|
require File.expand_path '../phony/countries/hungary', __FILE__
|
@@ -36,7 +34,7 @@ require File.expand_path '../phony/countries/united_kingdom', __FILE__
|
|
36
34
|
#
|
37
35
|
# All other countries.
|
38
36
|
#
|
39
|
-
require File.expand_path '../countries', __FILE__
|
37
|
+
require File.expand_path '../phony/countries', __FILE__
|
40
38
|
|
41
39
|
module Phony
|
42
40
|
|
data/lib/phony/countries.rb
CHANGED
@@ -1 +1,399 @@
|
|
1
|
-
|
1
|
+
# All countries, ordered by country code.
|
2
|
+
#
|
3
|
+
# Definitions are in the format:
|
4
|
+
# NDC >> National | NDC >> National | # ...
|
5
|
+
#
|
6
|
+
# As soon as a NDC matches, it goes on to the National part. Then breaks off.
|
7
|
+
# If the NDC does not match, it go on to the next (|, or "or") NDC.
|
8
|
+
#
|
9
|
+
# Available matching/splitting methods:
|
10
|
+
# * none: Does not have a national destination code, e.g. Denmark, Iceland.
|
11
|
+
# * one_of: Matches one of the following numbers. Splits if it does.
|
12
|
+
# * match: Try to match the regex, and if it matches, splits it off.
|
13
|
+
# * fixed: Always splits off a fixed length ndc. (Always use last in a | chain)
|
14
|
+
#
|
15
|
+
# For the national number part, there are two:
|
16
|
+
# * split: Use this number group splitting.
|
17
|
+
# * matched_split: Give a hash of regex => format array, with a :fallback => format option.
|
18
|
+
# (See Norway how it looks.)
|
19
|
+
#
|
20
|
+
# Note: The ones that are commented are defined in their special files.
|
21
|
+
#
|
22
|
+
Phony.define do
|
23
|
+
country '0', fixed(1) >> split(10) # Reserved.
|
24
|
+
country '1', fixed(3) >> split(3,4) # USA, Canada, etc.
|
25
|
+
country '7', fixed(3) >> split(3,2,2) # Kazakhstan (Republic of) & Russian Federation
|
26
|
+
|
27
|
+
country '20', one_of('800') >> split(7) | # Egypt
|
28
|
+
one_of('2', '3') >> split(8) | # Cairo/Giza, Alexandria
|
29
|
+
fixed(2) >> split(8)
|
30
|
+
# :mobile? => /^10|11|12|14|16|17|18|19*$/, :service? => /^800.*$/
|
31
|
+
country '27', fixed(2) >> split(3,4) # South Africa
|
32
|
+
|
33
|
+
# country '30', Phony::Countries::Greece
|
34
|
+
# country '31', Phony::Countries::Netherlands
|
35
|
+
# country '32', Phony::Countries::Belgium
|
36
|
+
country '33', fixed(1) >> split(2,2,2,2) # :service? => /^8.*$/, :mobile? => /^[67].*$/ # France
|
37
|
+
country '34', fixed(2) >> split(3,4) # Spain
|
38
|
+
# country '36', Phony::Countries::Hungary
|
39
|
+
# country '39', Phony::Countries::Italy
|
40
|
+
|
41
|
+
# country '40', Phony::Countries::Romania
|
42
|
+
# :service => %w{800 840 842 844 848}, :mobile => %w{74 76 77 78 79}
|
43
|
+
swiss_service_regex = /^(800|840|842|844|848)\d+$/
|
44
|
+
country '41', match(swiss_service_regex) >> split(3,3) | # Switzerland
|
45
|
+
fixed(2) >> split(3,2,2)
|
46
|
+
# country '43', Phony::Countries::Austria
|
47
|
+
# country '44', Phony::Countries::UnitedKingdom
|
48
|
+
country '45', none >> split(2,2,2,2) # Denmark
|
49
|
+
# country '46', Phony::Countries::Sweden
|
50
|
+
country '47', # Norway
|
51
|
+
none >> matched_split(/^[1].*$/ => [3], /^[489].*$/ => [3,2,3], :fallback => [2,2,2,2])
|
52
|
+
# Poland (Republic of)
|
53
|
+
# Although the NDCs are 2 digits, the representation is 3 digits.
|
54
|
+
# Note: http://wapedia.mobi/en/Telephone_numbers_in_Poland, mobile not yet correct
|
55
|
+
#
|
56
|
+
country '48', fixed(3) >> split(3,3) # Poland
|
57
|
+
# country '49', Phony::Countries::Germany
|
58
|
+
|
59
|
+
country '51', one_of('103', '105') >> split(3,3) | # Peru
|
60
|
+
one_of('1', '9') >> split(4,4) | # Lima and mobile.
|
61
|
+
fixed(2) >> split(4,4)
|
62
|
+
country '52', match(/^(0\d{2})\d+$/) >> split(2,2,2,2) | # Mexico
|
63
|
+
match(/^(33|55|81)\d+$/) >> split(2,2,2,2) |
|
64
|
+
match(/^(\d{3})\d+$/) >> split(3,2,2)
|
65
|
+
country '53', match(/^(5\d{3})\d+$/) >> split(4) | # Cuba. Mobile.
|
66
|
+
match(/^(7|21|22|23|4[1-8]|3[1-3])/) >> split(7) | #
|
67
|
+
fixed(3) >> split(7)
|
68
|
+
country '54', fixed(2) >> split(3,2,2) # TODO Argentine Republic
|
69
|
+
brazilian_service = /^(100|128|190|191|192|193|194|197|198|199)\d+$/
|
70
|
+
country '55', match(brazilian_service) >> split(3,3) | # Brazil (Federative Republic of)
|
71
|
+
fixed(2) >> split(4,4)
|
72
|
+
# :service? => brazilian_service, :mobile? => ?
|
73
|
+
# http://en.wikipedia.org/wiki/Telephone_numbers_in_Brazil
|
74
|
+
# country '56', Phony::Countries::Chile
|
75
|
+
country '57', fixed(2) >> split(3,2,2) # TODO Colombia
|
76
|
+
country '58', fixed(3) >> split(7) # Venezuela (Bolivarian Republic of)
|
77
|
+
|
78
|
+
# country '60', Phony::Countries::Malaysia
|
79
|
+
country '61', match(/^(4\d\d)\d+$/) >> split(3,3) | # Australia
|
80
|
+
fixed(1) >> split(4,4)
|
81
|
+
country '62', fixed(2) >> split(3,2,2) # TODO Indonesia (Republic of)
|
82
|
+
country '63', fixed(2) >> split(3,2,2) # TODO Philippines (Republic of the)
|
83
|
+
country '64', fixed(1) >> split(3,4) # New Zealand
|
84
|
+
country '65', fixed(2) >> split(3,2,2) # TODO Singapore (Republic of)
|
85
|
+
country '66', fixed(2) >> split(3,2,2) # TODO Thailand
|
86
|
+
|
87
|
+
country '81', fixed(2) >> split(3,2,2) # TODO Japan
|
88
|
+
# country '82', Phony::Countries::SouthKorea
|
89
|
+
country '84', fixed(2) >> split(3,2,2) # TODO Viet Nam (Socialist Republic of)
|
90
|
+
# country '86', Phony::Countries::China
|
91
|
+
|
92
|
+
country '90', fixed(3) >> split(3,4) # Turkey. Wiki says 7, but the examples say 3, 4.
|
93
|
+
country '91', fixed(2) >> split(3,2,2) # TODO India (Republic of)
|
94
|
+
country '92', fixed(2) >> split(3,2,2) # TODO Pakistan (Islamic Republic of), http://en.wikipedia.org/wiki/Telephone_numbers_in_Pakistan, NDC 2-5
|
95
|
+
country '93', fixed(2) >> split(7) # Afghanistan. Note: the document says 6, but the examples use 7. http://www.wtng.info/wtng-93-af.html
|
96
|
+
|
97
|
+
country '94', fixed(2) >> split(3,2,2) # TODO Sri Lanka (Democratic Socialist Republic of)
|
98
|
+
country '95', fixed(2) >> split(3,2,2) # TODO Myanmar (Union of)
|
99
|
+
country '98', fixed(2) >> split(3,2,2) # TODO Iran (Islamic Republic of)
|
100
|
+
|
101
|
+
country '210', fixed(2) >> split(3,2,2) # -
|
102
|
+
country '211', fixed(2) >> split(3,2,2) # -
|
103
|
+
country '212', fixed(2) >> split(3,2,2) # Morocco
|
104
|
+
country '213', fixed(2) >> split(3,4) # Algeria
|
105
|
+
country '214', fixed(2) >> split(3,2,2) # -
|
106
|
+
country '215', fixed(2) >> split(3,2,2) # -
|
107
|
+
country '216', fixed(1) >> split(3,4) # Tunisia
|
108
|
+
country '217', fixed(2) >> split(3,2,2) # -
|
109
|
+
country '218', fixed(2) >> split(3,2,2) # Lybia
|
110
|
+
country '219', fixed(2) >> split(3,2,2) # -
|
111
|
+
|
112
|
+
country '220', fixed(2) >> split(3,2,2) # Gambia
|
113
|
+
country '221', fixed(2) >> split(3,2,2) # Senegal
|
114
|
+
country '222', fixed(2) >> split(3,2,2) # Mauritania
|
115
|
+
country '223', fixed(2) >> split(3,2,2) # Mali
|
116
|
+
country '224', fixed(2) >> split(3,2,2) # Guinea
|
117
|
+
country '225', fixed(2) >> split(3,2,2) # Côte d'Ivoire
|
118
|
+
country '226', fixed(2) >> split(3,2,2) # Burkina Faso
|
119
|
+
country '227', fixed(2) >> split(3,2,2) # Niger
|
120
|
+
country '228', fixed(2) >> split(3,2,2) # Togolese Republic
|
121
|
+
country '229', fixed(2) >> split(3,2,2) # Benin
|
122
|
+
|
123
|
+
country '230', fixed(2) >> split(3,2,2) # Mauritius
|
124
|
+
country '231', fixed(2) >> split(3,2,2) # Liberia
|
125
|
+
country '232', fixed(2) >> split(3,2,2) # Sierra Leone
|
126
|
+
country '233', fixed(2) >> split(3,2,2) # Ghana
|
127
|
+
country '234', fixed(2) >> split(3,2,2) # Nigeria
|
128
|
+
country '235', fixed(2) >> split(3,2,2) # Chad
|
129
|
+
country '236', fixed(2) >> split(3,2,2) # Central African Republic
|
130
|
+
country '237', fixed(2) >> split(3,2,2) # Cameroon
|
131
|
+
country '238', fixed(2) >> split(3,2,2) # Cape Verde
|
132
|
+
country '239', fixed(2) >> split(3,2,2) # Sao Tome and Principe
|
133
|
+
|
134
|
+
country '240', fixed(2) >> split(3,2,2) # Equatorial Guinea
|
135
|
+
country '241', fixed(2) >> split(3,2,2) # Gabonese Republic
|
136
|
+
country '242', fixed(2) >> split(3,2,2) # Congo
|
137
|
+
country '243', fixed(2) >> split(3,2,2) # Democratic Republic of the Congo
|
138
|
+
country '244', fixed(2) >> split(3,2,2) # Angola
|
139
|
+
country '245', fixed(2) >> split(3,2,2) # Guinea-Bissau
|
140
|
+
country '246', fixed(2) >> split(3,2,2) # Diego Garcia
|
141
|
+
country '247', fixed(2) >> split(3,2,2) # Ascension
|
142
|
+
country '248', fixed(2) >> split(3,2,2) # Seychelles
|
143
|
+
country '249', fixed(2) >> split(3,2,2) # Sudan
|
144
|
+
|
145
|
+
country '250', fixed(2) >> split(3,2,2) # Rwanda
|
146
|
+
country '251', fixed(2) >> split(3,2,2) # Ethiopia
|
147
|
+
country '252', fixed(2) >> split(3,2,2) # Somali Democratic Republic
|
148
|
+
country '253', fixed(2) >> split(3,2,2) # Djibouti
|
149
|
+
country '254', fixed(2) >> split(3,2,2) # Kenya
|
150
|
+
country '255', fixed(2) >> split(3,2,2) # Tanzania
|
151
|
+
country '256', fixed(2) >> split(3,2,2) # Uganda
|
152
|
+
country '257', fixed(2) >> split(3,2,2) # Burundi
|
153
|
+
country '258', fixed(2) >> split(3,2,2) # Mozambique
|
154
|
+
country '259', fixed(2) >> split(3,2,2) # -
|
155
|
+
|
156
|
+
country '260', fixed(2) >> split(3,2,2) # Zambia
|
157
|
+
country '261', fixed(2) >> split(3,2,2) # Madagascar
|
158
|
+
country '262', fixed(3) >> split(3,2,2) # Reunion / Mayotte (new)
|
159
|
+
country '263', fixed(2) >> split(3,2,2) # Zimbabwe
|
160
|
+
country '264', fixed(2) >> split(3,2,2) # Namibia
|
161
|
+
country '265', fixed(2) >> split(3,2,2) # Malawi
|
162
|
+
country '266', fixed(2) >> split(3,2,2) # Lesotho
|
163
|
+
country '267', fixed(2) >> split(3,2,2) # Botswana
|
164
|
+
country '268', fixed(2) >> split(3,2,2) # Swaziland
|
165
|
+
country '269', fixed(2) >> split(3,2,2) # Comoros
|
166
|
+
|
167
|
+
country '280', fixed(2) >> split(3,2,2) # -
|
168
|
+
country '281', fixed(2) >> split(3,2,2) # -
|
169
|
+
country '282', fixed(2) >> split(3,2,2) # -
|
170
|
+
country '283', fixed(2) >> split(3,2,2) # -
|
171
|
+
country '284', fixed(2) >> split(3,2,2) # -
|
172
|
+
country '285', fixed(2) >> split(3,2,2) # -
|
173
|
+
country '286', fixed(2) >> split(3,2,2) # -
|
174
|
+
country '287', fixed(2) >> split(3,2,2) # -
|
175
|
+
country '288', fixed(2) >> split(3,2,2) # -
|
176
|
+
country '289', fixed(2) >> split(3,2,2) # -
|
177
|
+
country '290', fixed(2) >> split(3,2,2) # Saint Helena
|
178
|
+
|
179
|
+
country '291', fixed(2) >> split(3,2,2) # Eritrea
|
180
|
+
country '292', fixed(2) >> split(3,2,2) # -
|
181
|
+
country '293', fixed(2) >> split(3,2,2) # -
|
182
|
+
country '294', fixed(2) >> split(3,2,2) # -
|
183
|
+
country '295', fixed(2) >> split(3,2,2) # -
|
184
|
+
country '296', fixed(2) >> split(3,2,2) # -
|
185
|
+
country '297', fixed(2) >> split(3,2,2) # Aruba
|
186
|
+
country '298', fixed(2) >> split(3,2,2) # Faroe Islands
|
187
|
+
country '299', fixed(2) >> split(3,2,2) # Greenland
|
188
|
+
|
189
|
+
country '350', fixed(2) >> split(3,2,2) # Gibraltar
|
190
|
+
country '351', one_of('700', '800') >> split(3,3) | # Portugal
|
191
|
+
match(/^(9\d)\d+$/) >> split(3,4) | # mobile
|
192
|
+
one_of('21', '22') >> split(3,4) | # Lisboa & Porto
|
193
|
+
fixed(3) >> split(3,4)
|
194
|
+
country '352', fixed(2) >> split(3,2,2) # Luxembourg
|
195
|
+
country '353', fixed(2) >> split(3,2,2) # Ireland (0-3-4)
|
196
|
+
country '354', none >> split(3,4) # Iceland
|
197
|
+
country '355', fixed(2) >> split(3,2,2) # Albania
|
198
|
+
country '356', fixed(2) >> split(3,2,2) # Malta
|
199
|
+
country '357', fixed(2) >> split(3,2,2) # Cyprus
|
200
|
+
country '358', match(/^([6-8]00)\d+$/) >> split(3,3) | # Finland
|
201
|
+
match(/^(4\d|50)\d+$/) >> split(3,2,2) |
|
202
|
+
one_of('2','3','5','6','8','9') >> split(3,3) |
|
203
|
+
fixed(2) >> split(3,3)
|
204
|
+
country '359', fixed(2) >> split(3,2,2) # Bulgaria
|
205
|
+
|
206
|
+
country '370', one_of('700', '800') >> split(2,3) | # Lithuania
|
207
|
+
match(/^(6\d\d)\d+$/) >> split(2,3) | # Mobile
|
208
|
+
one_of('5') >> split(3,2,2) | # Vilnius
|
209
|
+
one_of('37','41') >> split(2,2,2) | #
|
210
|
+
fixed(3) >> split(1,2,2)
|
211
|
+
country '371', fixed(2) >> split(3,2,2) # Latvia
|
212
|
+
country '372', fixed(2) >> split(3,2,2) # Estonia
|
213
|
+
country '373', fixed(2) >> split(3,2,2) # Moldova
|
214
|
+
country '374', fixed(2) >> split(3,2,2) # Armenia
|
215
|
+
country '375', fixed(2) >> split(3,2,2) # Belarus
|
216
|
+
country '376', fixed(2) >> split(3,2,2) # Andorra
|
217
|
+
country '377', fixed(2) >> split(3,2,2) # Monaco
|
218
|
+
country '378', fixed(2) >> split(3,2,2) # San Marino
|
219
|
+
country '379', fixed(2) >> split(3,2,2) # Vatican City State
|
220
|
+
|
221
|
+
country '380', fixed(2) >> split(3,2,2) # Ukraine
|
222
|
+
country '381', fixed(2) >> split(3,2,2) # Serbia and Montenegro
|
223
|
+
country '382', fixed(2) >> split(3,2,2) # -
|
224
|
+
country '383', fixed(2) >> split(3,2,2) # -
|
225
|
+
country '384', fixed(2) >> split(3,2,2) # -
|
226
|
+
country '385', one_of('1') >> split(3,5) | # Croatia
|
227
|
+
fixed(2) >> split(3,5)
|
228
|
+
country '386', fixed(2) >> split(3,2,2) # Slovenia
|
229
|
+
country '387', fixed(2) >> split(3,2,2) # Bosnia and Herzegovina
|
230
|
+
country '388', fixed(2) >> split(3,2,2) # Group of countries, shared code
|
231
|
+
country '389', fixed(2) >> split(3,2,2) # The Former Yugoslav Republic of Macedonia
|
232
|
+
|
233
|
+
country '420', fixed(3) >> split(3,3) # Czech Republic
|
234
|
+
country '421', match(/^(9\d\d).+$/) >> split(6) | # Slovak Republic
|
235
|
+
one_of('2') >> split(8) | # Bratislava
|
236
|
+
fixed(2) >> split(7)
|
237
|
+
country '422', fixed(2) >> split(3,2,2) # Spare code
|
238
|
+
country '423', none >> split(3,2,2) # Liechtenstein (Principality of)
|
239
|
+
country '424', fixed(2) >> split(3,2,2) # -
|
240
|
+
country '425', fixed(2) >> split(3,2,2) # -
|
241
|
+
country '426', fixed(2) >> split(3,2,2) # -
|
242
|
+
country '427', fixed(2) >> split(3,2,2) # -
|
243
|
+
country '428', fixed(2) >> split(3,2,2) # -
|
244
|
+
country '429', fixed(2) >> split(3,2,2) # -
|
245
|
+
|
246
|
+
country '500', fixed(2) >> split(3,2,2) # Falkland Islands (Malvinas)
|
247
|
+
country '501', fixed(2) >> split(3,2,2) # Belize
|
248
|
+
country '502', fixed(2) >> split(3,2,2) # Guatemala (Republic of)
|
249
|
+
country '503', fixed(2) >> split(3,2,2) # El Salvador (Republic of)
|
250
|
+
country '504', fixed(2) >> split(3,2,2) # Honduras (Republic of)
|
251
|
+
country '505', fixed(2) >> split(3,2,2) # Nicaragua
|
252
|
+
country '506', fixed(2) >> split(3,2,2) # Costa Rica
|
253
|
+
country '507', fixed(2) >> split(3,2,2) # Panama (Republic of)
|
254
|
+
country '508', fixed(2) >> split(3,2,2) # Saint Pierre and Miquelon (Collectivité territoriale de la République française)
|
255
|
+
country '509', fixed(2) >> split(3,2,2) # Haiti (Republic of)
|
256
|
+
|
257
|
+
country '590', fixed(3) >> split(3,2,2) # Guadeloupe (French Department of)
|
258
|
+
country '591', fixed(2) >> split(3,2,2) # Bolivia (Republic of)
|
259
|
+
country '592', fixed(2) >> split(3,2,2) # Guyana
|
260
|
+
country '593', fixed(2) >> split(3,2,2) # Ecuador
|
261
|
+
country '594', fixed(3) >> split(3,2,2) # French Guiana (French Department of)
|
262
|
+
country '595', fixed(2) >> split(3,2,2) # Paraguay (Republic of)
|
263
|
+
country '596', fixed(3) >> split(3,2,2) # Martinique (French Department of)
|
264
|
+
country '597', fixed(2) >> split(3,2,2) # Suriname (Republic of)
|
265
|
+
country '598', fixed(2) >> split(3,2,2) # Uruguay (Eastern Republic of)
|
266
|
+
country '599', fixed(2) >> split(3,2,2) # Netherlands Antilles
|
267
|
+
|
268
|
+
country '670', fixed(2) >> split(3,2,2) # Democratic Republic of Timor-Leste
|
269
|
+
country '671', fixed(2) >> split(3,2,2) # Spare code
|
270
|
+
country '672', fixed(2) >> split(3,2,2) # Australian External Territories
|
271
|
+
country '673', fixed(2) >> split(3,2,2) # Brunei Darussalam
|
272
|
+
country '674', fixed(2) >> split(3,2,2) # Nauru (Republic of)
|
273
|
+
country '675', fixed(2) >> split(3,2,2) # Papua New Guinea
|
274
|
+
country '676', fixed(2) >> split(3,2,2) # Tonga (Kingdom of)
|
275
|
+
country '677', fixed(2) >> split(3,2,2) # Solomon Islands
|
276
|
+
country '678', fixed(2) >> split(3,2,2) # Vanuatu (Republic of)
|
277
|
+
country '679', fixed(2) >> split(3,2,2) # Fiji (Republic of)
|
278
|
+
|
279
|
+
country '680', fixed(2) >> split(3,2,2) # Palau (Republic of)
|
280
|
+
country '681', fixed(2) >> split(3,2,2) # Wallis and Futuna (Territoire français d'outre-mer)
|
281
|
+
country '682', fixed(2) >> split(3,2,2) # Cook Islands
|
282
|
+
country '683', fixed(2) >> split(3,2,2) # Niue
|
283
|
+
country '684', fixed(2) >> split(3,2,2) # -
|
284
|
+
country '685', fixed(2) >> split(3,2,2) # Samoa (Independent State of)
|
285
|
+
country '686', fixed(2) >> split(3,2,2) # Kiribati (Republic of)
|
286
|
+
country '687', fixed(2) >> split(3,2,2) # New Caledonia (Territoire français d'outre-mer)
|
287
|
+
country '688', fixed(2) >> split(3,2,2) # Tuvalu
|
288
|
+
country '689', fixed(2) >> split(3,2,2) # French Polynesia (Territoire français d'outre-mer)
|
289
|
+
|
290
|
+
country '690', fixed(2) >> split(3,2,2) # Tokelau
|
291
|
+
country '691', fixed(2) >> split(3,2,2) # Micronesia (Federated States of)
|
292
|
+
country '692', fixed(2) >> split(3,2,2) # Marshall Islands (Republic of the)
|
293
|
+
country '693', fixed(2) >> split(3,2,2) # -
|
294
|
+
country '694', fixed(2) >> split(3,2,2) # -
|
295
|
+
country '695', fixed(2) >> split(3,2,2) # -
|
296
|
+
country '696', fixed(2) >> split(3,2,2) # -
|
297
|
+
country '697', fixed(2) >> split(3,2,2) # -
|
298
|
+
country '698', fixed(2) >> split(3,2,2) # -
|
299
|
+
country '699', fixed(2) >> split(3,2,2) # -
|
300
|
+
|
301
|
+
country '800', fixed(2) >> split(3,2,2) # International Freephone Service
|
302
|
+
country '801', fixed(2) >> split(3,2,2) # -
|
303
|
+
country '802', fixed(2) >> split(3,2,2) # -
|
304
|
+
country '803', fixed(2) >> split(3,2,2) # -
|
305
|
+
country '804', fixed(2) >> split(3,2,2) # -
|
306
|
+
country '805', fixed(2) >> split(3,2,2) # -
|
307
|
+
country '806', fixed(2) >> split(3,2,2) # -
|
308
|
+
country '807', fixed(2) >> split(3,2,2) # -
|
309
|
+
country '808', fixed(2) >> split(3,2,2) # International Shared Cost Service (ISCS)
|
310
|
+
country '809', fixed(2) >> split(3,2,2) # -
|
311
|
+
|
312
|
+
country '830', fixed(2) >> split(3,2,2) # -
|
313
|
+
country '831', fixed(2) >> split(3,2,2) # -
|
314
|
+
country '832', fixed(2) >> split(3,2,2) # -
|
315
|
+
country '833', fixed(2) >> split(3,2,2) # -
|
316
|
+
country '834', fixed(2) >> split(3,2,2) # -
|
317
|
+
country '835', fixed(2) >> split(3,2,2) # -
|
318
|
+
country '836', fixed(2) >> split(3,2,2) # -
|
319
|
+
country '837', fixed(2) >> split(3,2,2) # -
|
320
|
+
country '838', fixed(2) >> split(3,2,2) # -
|
321
|
+
country '839', fixed(2) >> split(3,2,2) # -
|
322
|
+
|
323
|
+
country '850', fixed(2) >> split(3,2,2) # Democratic People's Republic of Korea
|
324
|
+
country '851', fixed(2) >> split(3,2,2) # Spare code
|
325
|
+
country '852', fixed(2) >> split(3,2,2) # Hong Kong, China
|
326
|
+
country '853', fixed(2) >> split(3,2,2) # Macao, China
|
327
|
+
country '854', fixed(2) >> split(3,2,2) # Spare code
|
328
|
+
country '855', fixed(2) >> split(3,2,2) # Cambodia (Kingdom of)
|
329
|
+
country '856', fixed(2) >> split(3,2,2) # Lao People's Democratic Republic
|
330
|
+
country '857', fixed(2) >> split(3,2,2) # Spare code
|
331
|
+
country '858', fixed(2) >> split(3,2,2) # Spare code
|
332
|
+
country '859', fixed(2) >> split(3,2,2) # Spare code
|
333
|
+
|
334
|
+
country '870', fixed(2) >> split(3,2,2) # Inmarsat SNAC
|
335
|
+
country '871', fixed(2) >> split(3,2,2) # Inmarsat (Atlantic Ocean-East)
|
336
|
+
country '872', fixed(2) >> split(3,2,2) # Inmarsat (Pacific Ocean)
|
337
|
+
country '873', fixed(2) >> split(3,2,2) # Inmarsat (Indian Ocean)
|
338
|
+
country '874', fixed(2) >> split(3,2,2) # Inmarsat (Atlantic Ocean-West)
|
339
|
+
country '875', fixed(2) >> split(3,2,2) # Reserved - Maritime Mobile Service Applications
|
340
|
+
country '876', fixed(2) >> split(3,2,2) # Reserved - Maritime Mobile Service Applications
|
341
|
+
country '877', fixed(2) >> split(3,2,2) # Reserved - Maritime Mobile Service Applications
|
342
|
+
country '878', fixed(2) >> split(3,2,2) # Universal Personal Telecommunication Service (UPT)
|
343
|
+
country '879', fixed(2) >> split(3,2,2) # Reserved for national non-commercial purposes
|
344
|
+
|
345
|
+
country '880', fixed(2) >> split(3,2,2) # Bangladesh (People's Republic of)
|
346
|
+
country '881', fixed(2) >> split(3,2,2) # International Mobile, shared code
|
347
|
+
country '882', fixed(2) >> split(3,2,2) # International Networks, shared code
|
348
|
+
country '883', fixed(2) >> split(3,2,2) # -
|
349
|
+
country '884', fixed(2) >> split(3,2,2) # -
|
350
|
+
country '885', fixed(2) >> split(3,2,2) # -
|
351
|
+
country '886', fixed(2) >> split(3,2,2) # Reserved
|
352
|
+
country '887', fixed(2) >> split(3,2,2) # -
|
353
|
+
country '888', fixed(2) >> split(3,2,2) # Reserved for future global service
|
354
|
+
country '889', fixed(2) >> split(3,2,2) # -
|
355
|
+
|
356
|
+
country '890', fixed(2) >> split(3,2,2) # -
|
357
|
+
country '891', fixed(2) >> split(3,2,2) # -
|
358
|
+
country '892', fixed(2) >> split(3,2,2) # -
|
359
|
+
country '893', fixed(2) >> split(3,2,2) # -
|
360
|
+
country '894', fixed(2) >> split(3,2,2) # -
|
361
|
+
country '895', fixed(2) >> split(3,2,2) # -
|
362
|
+
country '896', fixed(2) >> split(3,2,2) # -
|
363
|
+
country '897', fixed(2) >> split(3,2,2) # -
|
364
|
+
country '898', fixed(2) >> split(3,2,2) # -
|
365
|
+
country '899', fixed(2) >> split(3,2,2) # -
|
366
|
+
|
367
|
+
country '960', fixed(2) >> split(3,2,2) # Maldives (Republic of)
|
368
|
+
country '961', fixed(2) >> split(3,2,2) # Lebanon
|
369
|
+
country '962', fixed(2) >> split(3,2,2) # Jordan (Hashemite Kingdom of)
|
370
|
+
country '963', fixed(2) >> split(3,2,2) # Syrian Arab Republic
|
371
|
+
country '964', fixed(2) >> split(3,2,2) # Iraq (Republic of)
|
372
|
+
country '965', fixed(2) >> split(3,2,2) # Kuwait (State of)
|
373
|
+
country '966', fixed(2) >> split(3,2,2) # Saudi Arabia (Kingdom of)
|
374
|
+
country '967', fixed(2) >> split(3,2,2) # Yemen (Republic of)
|
375
|
+
country '968', fixed(2) >> split(3,2,2) # Oman (Sultanate of)
|
376
|
+
country '969', fixed(2) >> split(3,2,2) # Reserved - reservation currently under investigation
|
377
|
+
|
378
|
+
country '970', fixed(2) >> split(3,2,2) # Reserved
|
379
|
+
country '971', fixed(2) >> split(3,2,2) # United Arab Emirates
|
380
|
+
country '972', fixed(2) >> split(3,2,2) # Israel (State of)
|
381
|
+
country '973', fixed(2) >> split(3,2,2) # Bahrain (Kingdom of)
|
382
|
+
country '974', fixed(2) >> split(3,2,2) # Qatar (State of)
|
383
|
+
country '975', fixed(2) >> split(3,2,2) # Bhutan (Kingdom of)
|
384
|
+
country '976', fixed(2) >> split(3,2,2) # Mongolia
|
385
|
+
country '977', fixed(2) >> split(3,2,2) # Nepal
|
386
|
+
country '978', fixed(2) >> split(3,2,2) # -
|
387
|
+
country '979', fixed(2) >> split(3,2,2) # International Premium Rate Service (IPRS)
|
388
|
+
|
389
|
+
country '990', fixed(2) >> split(3,2,2) # Spare code
|
390
|
+
country '991', fixed(2) >> split(3,2,2) # Trial of a proposed new international telecommunication public correspondence service, shared code
|
391
|
+
country '992', fixed(2) >> split(3,2,2) # Tajikistan (Republic of)
|
392
|
+
country '993', fixed(2) >> split(3,2,2) # Turkmenistan
|
393
|
+
country '994', fixed(2) >> split(3,2,2) # Azerbaijani Republic
|
394
|
+
country '995', fixed(2) >> split(3,2,2) # Georgia
|
395
|
+
country '996', fixed(2) >> split(3,2,2) # Kyrgyz Republic
|
396
|
+
country '997', fixed(2) >> split(3,2,2) # Spare code
|
397
|
+
country '998', fixed(2) >> split(3,2,2) # Uzbekistan (Republic of)
|
398
|
+
country '999', fixed(2) >> split(3,2,2) # Reserved for possible future use within the Telecommunications for Disaster Relief (TDR) concept
|
399
|
+
end
|
@@ -153,9 +153,9 @@ service = [ # Not exhaustive.
|
|
153
153
|
|
154
154
|
# TODO Normalize!
|
155
155
|
#
|
156
|
-
#
|
157
|
-
#
|
158
|
-
#
|
156
|
+
# country '39', one_of(*service) >> split(3,3) |
|
157
|
+
# one_of(*mobile) >> split(3,4) |
|
158
|
+
# one_of(*ndcs, :max_length => 3) >> split(3,4)
|
159
159
|
|
160
160
|
handlers = []
|
161
161
|
handlers << Phony::NationalCode.new(
|
File without changes
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: phony
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 1.4.
|
5
|
+
version: 1.4.1
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Florian Hanke
|
@@ -23,12 +23,10 @@ extensions: []
|
|
23
23
|
extra_rdoc_files:
|
24
24
|
- README.textile
|
25
25
|
files:
|
26
|
-
- lib/countries.rb
|
27
26
|
- lib/phony/countries/austria.rb
|
28
27
|
- lib/phony/countries/belgium.rb
|
29
28
|
- lib/phony/countries/chile.rb
|
30
29
|
- lib/phony/countries/china.rb
|
31
|
-
- lib/phony/countries/egypt.rb
|
32
30
|
- lib/phony/countries/germany.rb
|
33
31
|
- lib/phony/countries/greece.rb
|
34
32
|
- lib/phony/countries/hungary.rb
|
@@ -54,7 +52,7 @@ files:
|
|
54
52
|
- lib/phony/vanity.rb
|
55
53
|
- lib/phony.rb
|
56
54
|
- README.textile
|
57
|
-
- spec/lib/countries_spec.rb
|
55
|
+
- spec/lib/phony/countries_spec.rb
|
58
56
|
- spec/lib/phony/country_codes_spec.rb
|
59
57
|
- spec/lib/phony/country_spec.rb
|
60
58
|
- spec/lib/phony/local_splitters/fixed_spec.rb
|
@@ -95,7 +93,7 @@ signing_key:
|
|
95
93
|
specification_version: 3
|
96
94
|
summary: Fast international phone number (E164 standard) normalizing, splitting and formatting.
|
97
95
|
test_files:
|
98
|
-
- spec/lib/countries_spec.rb
|
96
|
+
- spec/lib/phony/countries_spec.rb
|
99
97
|
- spec/lib/phony/country_codes_spec.rb
|
100
98
|
- spec/lib/phony/country_spec.rb
|
101
99
|
- spec/lib/phony/local_splitters/fixed_spec.rb
|
data/lib/countries.rb
DELETED
@@ -1,399 +0,0 @@
|
|
1
|
-
# All countries, ordered by country code.
|
2
|
-
#
|
3
|
-
# Definitions are in the format:
|
4
|
-
# NDC >> National | NDC >> National | # ...
|
5
|
-
#
|
6
|
-
# As soon as a NDC matches, it goes on to the National part. Then breaks off.
|
7
|
-
# If the NDC does not match, it go on to the next (|, or "or") NDC.
|
8
|
-
#
|
9
|
-
# Available matching/splitting methods:
|
10
|
-
# * none: Does not have a national destination code, e.g. Denmark, Iceland.
|
11
|
-
# * one_of: Matches one of the following numbers. Splits if it does.
|
12
|
-
# * match: Try to match the regex, and if it matches, splits it off.
|
13
|
-
# * fixed: Always splits off a fixed length ndc. (Always use last in a | chain)
|
14
|
-
#
|
15
|
-
# For the national number part, there are two:
|
16
|
-
# * split: Use this number group splitting.
|
17
|
-
# * matched_split: Give a hash of regex => format array, with a :fallback => format option.
|
18
|
-
# (See Norway how it looks.)
|
19
|
-
#
|
20
|
-
# Note: The ones that are commented are defined in their special files.
|
21
|
-
#
|
22
|
-
Phony.define do
|
23
|
-
country '0', fixed(1) >> split(10) # Reserved.
|
24
|
-
country '1', fixed(3) >> split(3,4) # USA, Canada, etc.
|
25
|
-
country '7', fixed(3) >> split(3,2,2) # Kazakhstan (Republic of) & Russian Federation
|
26
|
-
|
27
|
-
country '20', one_of('800') >> split(7) | # Egypt
|
28
|
-
one_of('2', '3') >> split(8) | # Cairo/Giza, Alexandria
|
29
|
-
fixed(2) >> split(8)
|
30
|
-
# :mobile? => /^10|11|12|14|16|17|18|19*$/, :service? => /^800.*$/
|
31
|
-
country '27', fixed(2) >> split(3,4) # South Africa
|
32
|
-
|
33
|
-
# country '30', Phony::Countries::Greece
|
34
|
-
# country '31', Phony::Countries::Netherlands
|
35
|
-
# country '32', Phony::Countries::Belgium
|
36
|
-
country '33', fixed(1) >> split(2,2,2,2) # :service? => /^8.*$/, :mobile? => /^[67].*$/ # France
|
37
|
-
country '34', fixed(2) >> split(3,4) # Spain
|
38
|
-
# country '36', Phony::Countries::Hungary
|
39
|
-
# country '39', Phony::Countries::Italy
|
40
|
-
|
41
|
-
# country '40', Phony::Countries::Romania
|
42
|
-
# :service => %w{800 840 842 844 848}, :mobile => %w{74 76 77 78 79}
|
43
|
-
swiss_service_regex = /^(800|840|842|844|848)\d+$/
|
44
|
-
country '41', match(swiss_service_regex) >> split(3,3) | # Switzerland
|
45
|
-
fixed(2) >> split(3,2,2)
|
46
|
-
# country '43', Phony::Countries::Austria
|
47
|
-
# country '44', Phony::Countries::UnitedKingdom
|
48
|
-
country '45', none >> split(2,2,2,2) # Denmark
|
49
|
-
# country '46', Phony::Countries::Sweden
|
50
|
-
country '47', # Norway
|
51
|
-
none >> matched_split(/^[1].*$/ => [3], /^[489].*$/ => [3,2,3], :fallback => [2,2,2,2])
|
52
|
-
# Poland (Republic of)
|
53
|
-
# Although the NDCs are 2 digits, the representation is 3 digits.
|
54
|
-
# Note: http://wapedia.mobi/en/Telephone_numbers_in_Poland, mobile not yet correct
|
55
|
-
#
|
56
|
-
country '48', fixed(3) >> split(3,3) # Poland
|
57
|
-
# country '49', Phony::Countries::Germany
|
58
|
-
|
59
|
-
country '51', one_of('103', '105') >> split(3,3) | # Peru
|
60
|
-
one_of('1', '9') >> split(4,4) | # Lima and mobile.
|
61
|
-
fixed(2) >> split(4,4)
|
62
|
-
country '52', match(/^(0\d{2})\d+$/) >> split(2,2,2,2) | # Mexico
|
63
|
-
match(/^(33|55|81)\d+$/) >> split(2,2,2,2) |
|
64
|
-
match(/^(\d{3})\d+$/) >> split(3,2,2)
|
65
|
-
country '53', match(/^(5\d{3})\d+$/) >> split(4) | # Cuba. Mobile.
|
66
|
-
match(/^(7|21|22|23|4[1-8]|3[1-3])/) >> split(7) | #
|
67
|
-
fixed(3) >> split(7)
|
68
|
-
country '54', fixed(2) >> split(3,2,2) # TODO Argentine Republic
|
69
|
-
brazilian_service = /^(100|128|190|191|192|193|194|197|198|199)\d+$/
|
70
|
-
country '55', match(brazilian_service) >> split(3,3) | # Brazil (Federative Republic of)
|
71
|
-
fixed(2) >> split(4,4)
|
72
|
-
# :service? => brazilian_service, :mobile? => ?
|
73
|
-
# http://en.wikipedia.org/wiki/Telephone_numbers_in_Brazil
|
74
|
-
# country '56', Phony::Countries::Chile
|
75
|
-
country '57', fixed(2) >> split(3,2,2) # TODO Colombia
|
76
|
-
country '58', fixed(3) >> split(7) # Venezuela (Bolivarian Republic of)
|
77
|
-
|
78
|
-
# country '60', Phony::Countries::Malaysia
|
79
|
-
country '61', match(/^(4\d\d)\d+$/) >> split(3,3) | # Australia
|
80
|
-
fixed(1) >> split(4,4)
|
81
|
-
country '62', fixed(2) >> split(3,2,2) # TODO Indonesia (Republic of)
|
82
|
-
country '63', fixed(2) >> split(3,2,2) # TODO Philippines (Republic of the)
|
83
|
-
country '64', fixed(1) >> split(3,4) # New Zealand
|
84
|
-
country '65', fixed(2) >> split(3,2,2) # TODO Singapore (Republic of)
|
85
|
-
country '66', fixed(2) >> split(3,2,2) # TODO Thailand
|
86
|
-
|
87
|
-
country '81', fixed(2) >> split(3,2,2) # TODO Japan
|
88
|
-
# country '82', Phony::Countries::SouthKorea
|
89
|
-
country '84', fixed(2) >> split(3,2,2) # TODO Viet Nam (Socialist Republic of)
|
90
|
-
# country '86', Phony::Countries::China
|
91
|
-
|
92
|
-
country '90', fixed(3) >> split(3,4) # Turkey. Wiki says 7, but the examples say 3, 4.
|
93
|
-
country '91', fixed(2) >> split(3,2,2) # TODO India (Republic of)
|
94
|
-
country '92', fixed(2) >> split(3,2,2) # TODO Pakistan (Islamic Republic of), http://en.wikipedia.org/wiki/Telephone_numbers_in_Pakistan, NDC 2-5
|
95
|
-
country '93', fixed(2) >> split(7) # Afghanistan. Note: the document says 6, but the examples use 7. http://www.wtng.info/wtng-93-af.html
|
96
|
-
|
97
|
-
country '94', fixed(2) >> split(3,2,2) # TODO Sri Lanka (Democratic Socialist Republic of)
|
98
|
-
country '95', fixed(2) >> split(3,2,2) # TODO Myanmar (Union of)
|
99
|
-
country '98', fixed(2) >> split(3,2,2) # TODO Iran (Islamic Republic of)
|
100
|
-
|
101
|
-
country '210', fixed(2) >> split(3,2,2) # -
|
102
|
-
country '211', fixed(2) >> split(3,2,2) # -
|
103
|
-
country '212', fixed(2) >> split(3,2,2) # Morocco
|
104
|
-
country '213', fixed(2) >> split(3,4) # Algeria
|
105
|
-
country '214', fixed(2) >> split(3,2,2) # -
|
106
|
-
country '215', fixed(2) >> split(3,2,2) # -
|
107
|
-
country '216', fixed(1) >> split(3,4) # Tunisia
|
108
|
-
country '217', fixed(2) >> split(3,2,2) # -
|
109
|
-
country '218', fixed(2) >> split(3,2,2) # Lybia
|
110
|
-
country '219', fixed(2) >> split(3,2,2) # -
|
111
|
-
|
112
|
-
country '220', fixed(2) >> split(3,2,2) # Gambia
|
113
|
-
country '221', fixed(2) >> split(3,2,2) # Senegal
|
114
|
-
country '222', fixed(2) >> split(3,2,2) # Mauritania
|
115
|
-
country '223', fixed(2) >> split(3,2,2) # Mali
|
116
|
-
country '224', fixed(2) >> split(3,2,2) # Guinea
|
117
|
-
country '225', fixed(2) >> split(3,2,2) # Côte d'Ivoire
|
118
|
-
country '226', fixed(2) >> split(3,2,2) # Burkina Faso
|
119
|
-
country '227', fixed(2) >> split(3,2,2) # Niger
|
120
|
-
country '228', fixed(2) >> split(3,2,2) # Togolese Republic
|
121
|
-
country '229', fixed(2) >> split(3,2,2) # Benin
|
122
|
-
|
123
|
-
country '230', fixed(2) >> split(3,2,2) # Mauritius
|
124
|
-
country '231', fixed(2) >> split(3,2,2) # Liberia
|
125
|
-
country '232', fixed(2) >> split(3,2,2) # Sierra Leone
|
126
|
-
country '233', fixed(2) >> split(3,2,2) # Ghana
|
127
|
-
country '234', fixed(2) >> split(3,2,2) # Nigeria
|
128
|
-
country '235', fixed(2) >> split(3,2,2) # Chad
|
129
|
-
country '236', fixed(2) >> split(3,2,2) # Central African Republic
|
130
|
-
country '237', fixed(2) >> split(3,2,2) # Cameroon
|
131
|
-
country '238', fixed(2) >> split(3,2,2) # Cape Verde
|
132
|
-
country '239', fixed(2) >> split(3,2,2) # Sao Tome and Principe
|
133
|
-
|
134
|
-
country '240', fixed(2) >> split(3,2,2) # Equatorial Guinea
|
135
|
-
country '241', fixed(2) >> split(3,2,2) # Gabonese Republic
|
136
|
-
country '242', fixed(2) >> split(3,2,2) # Congo
|
137
|
-
country '243', fixed(2) >> split(3,2,2) # Democratic Republic of the Congo
|
138
|
-
country '244', fixed(2) >> split(3,2,2) # Angola
|
139
|
-
country '245', fixed(2) >> split(3,2,2) # Guinea-Bissau
|
140
|
-
country '246', fixed(2) >> split(3,2,2) # Diego Garcia
|
141
|
-
country '247', fixed(2) >> split(3,2,2) # Ascension
|
142
|
-
country '248', fixed(2) >> split(3,2,2) # Seychelles
|
143
|
-
country '249', fixed(2) >> split(3,2,2) # Sudan
|
144
|
-
|
145
|
-
country '250', fixed(2) >> split(3,2,2) # Rwanda
|
146
|
-
country '251', fixed(2) >> split(3,2,2) # Ethiopia
|
147
|
-
country '252', fixed(2) >> split(3,2,2) # Somali Democratic Republic
|
148
|
-
country '253', fixed(2) >> split(3,2,2) # Djibouti
|
149
|
-
country '254', fixed(2) >> split(3,2,2) # Kenya
|
150
|
-
country '255', fixed(2) >> split(3,2,2) # Tanzania
|
151
|
-
country '256', fixed(2) >> split(3,2,2) # Uganda
|
152
|
-
country '257', fixed(2) >> split(3,2,2) # Burundi
|
153
|
-
country '258', fixed(2) >> split(3,2,2) # Mozambique
|
154
|
-
country '259', fixed(2) >> split(3,2,2) # -
|
155
|
-
|
156
|
-
country '260', fixed(2) >> split(3,2,2) # Zambia
|
157
|
-
country '261', fixed(2) >> split(3,2,2) # Madagascar
|
158
|
-
country '262', fixed(3) >> split(3,2,2) # Reunion / Mayotte (new)
|
159
|
-
country '263', fixed(2) >> split(3,2,2) # Zimbabwe
|
160
|
-
country '264', fixed(2) >> split(3,2,2) # Namibia
|
161
|
-
country '265', fixed(2) >> split(3,2,2) # Malawi
|
162
|
-
country '266', fixed(2) >> split(3,2,2) # Lesotho
|
163
|
-
country '267', fixed(2) >> split(3,2,2) # Botswana
|
164
|
-
country '268', fixed(2) >> split(3,2,2) # Swaziland
|
165
|
-
country '269', fixed(2) >> split(3,2,2) # Comoros
|
166
|
-
|
167
|
-
country '280', fixed(2) >> split(3,2,2) # -
|
168
|
-
country '281', fixed(2) >> split(3,2,2) # -
|
169
|
-
country '282', fixed(2) >> split(3,2,2) # -
|
170
|
-
country '283', fixed(2) >> split(3,2,2) # -
|
171
|
-
country '284', fixed(2) >> split(3,2,2) # -
|
172
|
-
country '285', fixed(2) >> split(3,2,2) # -
|
173
|
-
country '286', fixed(2) >> split(3,2,2) # -
|
174
|
-
country '287', fixed(2) >> split(3,2,2) # -
|
175
|
-
country '288', fixed(2) >> split(3,2,2) # -
|
176
|
-
country '289', fixed(2) >> split(3,2,2) # -
|
177
|
-
country '290', fixed(2) >> split(3,2,2) # Saint Helena
|
178
|
-
|
179
|
-
country '291', fixed(2) >> split(3,2,2) # Eritrea
|
180
|
-
country '292', fixed(2) >> split(3,2,2) # -
|
181
|
-
country '293', fixed(2) >> split(3,2,2) # -
|
182
|
-
country '294', fixed(2) >> split(3,2,2) # -
|
183
|
-
country '295', fixed(2) >> split(3,2,2) # -
|
184
|
-
country '296', fixed(2) >> split(3,2,2) # -
|
185
|
-
country '297', fixed(2) >> split(3,2,2) # Aruba
|
186
|
-
country '298', fixed(2) >> split(3,2,2) # Faroe Islands
|
187
|
-
country '299', fixed(2) >> split(3,2,2) # Greenland
|
188
|
-
|
189
|
-
country '350', fixed(2) >> split(3,2,2) # Gibraltar
|
190
|
-
country '351', one_of('700', '800') >> split(3,3) | # Portugal
|
191
|
-
match(/^(9\d)\d+$/) >> split(3,4) | # mobile
|
192
|
-
one_of('21', '22') >> split(3,4) | # Lisboa & Porto
|
193
|
-
fixed(3) >> split(3,4)
|
194
|
-
country '352', fixed(2) >> split(3,2,2) # Luxembourg
|
195
|
-
country '353', fixed(2) >> split(3,2,2) # Ireland (0-3-4)
|
196
|
-
country '354', none >> split(3,4) # Iceland
|
197
|
-
country '355', fixed(2) >> split(3,2,2) # Albania
|
198
|
-
country '356', fixed(2) >> split(3,2,2) # Malta
|
199
|
-
country '357', fixed(2) >> split(3,2,2) # Cyprus
|
200
|
-
country '358', match(/^([6-8]00)\d+$/) >> split(3,3) | # Finland
|
201
|
-
match(/^(4\d|50)\d+$/) >> split(3,2,2) |
|
202
|
-
one_of('2','3','5','6','8','9') >> split(3,3) |
|
203
|
-
fixed(2) >> split(3,3)
|
204
|
-
country '359', fixed(2) >> split(3,2,2) # Bulgaria
|
205
|
-
|
206
|
-
country '370', one_of('700', '800') >> split(2,3) | # Lithuania
|
207
|
-
match(/^(6\d\d)\d+$/) >> split(2,3) | # Mobile
|
208
|
-
one_of('5') >> split(3,2,2) | # Vilnius
|
209
|
-
one_of('37','41') >> split(2,2,2) | #
|
210
|
-
fixed(3) >> split(1,2,2)
|
211
|
-
country '371', fixed(2) >> split(3,2,2) # Latvia
|
212
|
-
country '372', fixed(2) >> split(3,2,2) # Estonia
|
213
|
-
country '373', fixed(2) >> split(3,2,2) # Moldova
|
214
|
-
country '374', fixed(2) >> split(3,2,2) # Armenia
|
215
|
-
country '375', fixed(2) >> split(3,2,2) # Belarus
|
216
|
-
country '376', fixed(2) >> split(3,2,2) # Andorra
|
217
|
-
country '377', fixed(2) >> split(3,2,2) # Monaco
|
218
|
-
country '378', fixed(2) >> split(3,2,2) # San Marino
|
219
|
-
country '379', fixed(2) >> split(3,2,2) # Vatican City State
|
220
|
-
|
221
|
-
country '380', fixed(2) >> split(3,2,2) # Ukraine
|
222
|
-
country '381', fixed(2) >> split(3,2,2) # Serbia and Montenegro
|
223
|
-
country '382', fixed(2) >> split(3,2,2) # -
|
224
|
-
country '383', fixed(2) >> split(3,2,2) # -
|
225
|
-
country '384', fixed(2) >> split(3,2,2) # -
|
226
|
-
country '385', one_of('1') >> split(3,5) | # Croatia
|
227
|
-
fixed(2) >> split(3,5)
|
228
|
-
country '386', fixed(2) >> split(3,2,2) # Slovenia
|
229
|
-
country '387', fixed(2) >> split(3,2,2) # Bosnia and Herzegovina
|
230
|
-
country '388', fixed(2) >> split(3,2,2) # Group of countries, shared code
|
231
|
-
country '389', fixed(2) >> split(3,2,2) # The Former Yugoslav Republic of Macedonia
|
232
|
-
|
233
|
-
country '420', fixed(3) >> split(3,3) # Czech Republic
|
234
|
-
country '421', match(/^(9\d\d).+$/) >> split(6) | # Slovak Republic
|
235
|
-
one_of('2') >> split(8) | # Bratislava
|
236
|
-
fixed(2) >> split(7)
|
237
|
-
country '422', fixed(2) >> split(3,2,2) # Spare code
|
238
|
-
country '423', none >> split(3,2,2) # Liechtenstein (Principality of)
|
239
|
-
country '424', fixed(2) >> split(3,2,2) # -
|
240
|
-
country '425', fixed(2) >> split(3,2,2) # -
|
241
|
-
country '426', fixed(2) >> split(3,2,2) # -
|
242
|
-
country '427', fixed(2) >> split(3,2,2) # -
|
243
|
-
country '428', fixed(2) >> split(3,2,2) # -
|
244
|
-
country '429', fixed(2) >> split(3,2,2) # -
|
245
|
-
|
246
|
-
country '500', fixed(2) >> split(3,2,2) # Falkland Islands (Malvinas)
|
247
|
-
country '501', fixed(2) >> split(3,2,2) # Belize
|
248
|
-
country '502', fixed(2) >> split(3,2,2) # Guatemala (Republic of)
|
249
|
-
country '503', fixed(2) >> split(3,2,2) # El Salvador (Republic of)
|
250
|
-
country '504', fixed(2) >> split(3,2,2) # Honduras (Republic of)
|
251
|
-
country '505', fixed(2) >> split(3,2,2) # Nicaragua
|
252
|
-
country '506', fixed(2) >> split(3,2,2) # Costa Rica
|
253
|
-
country '507', fixed(2) >> split(3,2,2) # Panama (Republic of)
|
254
|
-
country '508', fixed(2) >> split(3,2,2) # Saint Pierre and Miquelon (Collectivité territoriale de la République française)
|
255
|
-
country '509', fixed(2) >> split(3,2,2) # Haiti (Republic of)
|
256
|
-
|
257
|
-
country '590', fixed(3) >> split(3,2,2) # Guadeloupe (French Department of)
|
258
|
-
country '591', fixed(2) >> split(3,2,2) # Bolivia (Republic of)
|
259
|
-
country '592', fixed(2) >> split(3,2,2) # Guyana
|
260
|
-
country '593', fixed(2) >> split(3,2,2) # Ecuador
|
261
|
-
country '594', fixed(3) >> split(3,2,2) # French Guiana (French Department of)
|
262
|
-
country '595', fixed(2) >> split(3,2,2) # Paraguay (Republic of)
|
263
|
-
country '596', fixed(3) >> split(3,2,2) # Martinique (French Department of)
|
264
|
-
country '597', fixed(2) >> split(3,2,2) # Suriname (Republic of)
|
265
|
-
country '598', fixed(2) >> split(3,2,2) # Uruguay (Eastern Republic of)
|
266
|
-
country '599', fixed(2) >> split(3,2,2) # Netherlands Antilles
|
267
|
-
|
268
|
-
country '670', fixed(2) >> split(3,2,2) # Democratic Republic of Timor-Leste
|
269
|
-
country '671', fixed(2) >> split(3,2,2) # Spare code
|
270
|
-
country '672', fixed(2) >> split(3,2,2) # Australian External Territories
|
271
|
-
country '673', fixed(2) >> split(3,2,2) # Brunei Darussalam
|
272
|
-
country '674', fixed(2) >> split(3,2,2) # Nauru (Republic of)
|
273
|
-
country '675', fixed(2) >> split(3,2,2) # Papua New Guinea
|
274
|
-
country '676', fixed(2) >> split(3,2,2) # Tonga (Kingdom of)
|
275
|
-
country '677', fixed(2) >> split(3,2,2) # Solomon Islands
|
276
|
-
country '678', fixed(2) >> split(3,2,2) # Vanuatu (Republic of)
|
277
|
-
country '679', fixed(2) >> split(3,2,2) # Fiji (Republic of)
|
278
|
-
|
279
|
-
country '680', fixed(2) >> split(3,2,2) # Palau (Republic of)
|
280
|
-
country '681', fixed(2) >> split(3,2,2) # Wallis and Futuna (Territoire français d'outre-mer)
|
281
|
-
country '682', fixed(2) >> split(3,2,2) # Cook Islands
|
282
|
-
country '683', fixed(2) >> split(3,2,2) # Niue
|
283
|
-
country '684', fixed(2) >> split(3,2,2) # -
|
284
|
-
country '685', fixed(2) >> split(3,2,2) # Samoa (Independent State of)
|
285
|
-
country '686', fixed(2) >> split(3,2,2) # Kiribati (Republic of)
|
286
|
-
country '687', fixed(2) >> split(3,2,2) # New Caledonia (Territoire français d'outre-mer)
|
287
|
-
country '688', fixed(2) >> split(3,2,2) # Tuvalu
|
288
|
-
country '689', fixed(2) >> split(3,2,2) # French Polynesia (Territoire français d'outre-mer)
|
289
|
-
|
290
|
-
country '690', fixed(2) >> split(3,2,2) # Tokelau
|
291
|
-
country '691', fixed(2) >> split(3,2,2) # Micronesia (Federated States of)
|
292
|
-
country '692', fixed(2) >> split(3,2,2) # Marshall Islands (Republic of the)
|
293
|
-
country '693', fixed(2) >> split(3,2,2) # -
|
294
|
-
country '694', fixed(2) >> split(3,2,2) # -
|
295
|
-
country '695', fixed(2) >> split(3,2,2) # -
|
296
|
-
country '696', fixed(2) >> split(3,2,2) # -
|
297
|
-
country '697', fixed(2) >> split(3,2,2) # -
|
298
|
-
country '698', fixed(2) >> split(3,2,2) # -
|
299
|
-
country '699', fixed(2) >> split(3,2,2) # -
|
300
|
-
|
301
|
-
country '800', fixed(2) >> split(3,2,2) # International Freephone Service
|
302
|
-
country '801', fixed(2) >> split(3,2,2) # -
|
303
|
-
country '802', fixed(2) >> split(3,2,2) # -
|
304
|
-
country '803', fixed(2) >> split(3,2,2) # -
|
305
|
-
country '804', fixed(2) >> split(3,2,2) # -
|
306
|
-
country '805', fixed(2) >> split(3,2,2) # -
|
307
|
-
country '806', fixed(2) >> split(3,2,2) # -
|
308
|
-
country '807', fixed(2) >> split(3,2,2) # -
|
309
|
-
country '808', fixed(2) >> split(3,2,2) # International Shared Cost Service (ISCS)
|
310
|
-
country '809', fixed(2) >> split(3,2,2) # -
|
311
|
-
|
312
|
-
country '830', fixed(2) >> split(3,2,2) # -
|
313
|
-
country '831', fixed(2) >> split(3,2,2) # -
|
314
|
-
country '832', fixed(2) >> split(3,2,2) # -
|
315
|
-
country '833', fixed(2) >> split(3,2,2) # -
|
316
|
-
country '834', fixed(2) >> split(3,2,2) # -
|
317
|
-
country '835', fixed(2) >> split(3,2,2) # -
|
318
|
-
country '836', fixed(2) >> split(3,2,2) # -
|
319
|
-
country '837', fixed(2) >> split(3,2,2) # -
|
320
|
-
country '838', fixed(2) >> split(3,2,2) # -
|
321
|
-
country '839', fixed(2) >> split(3,2,2) # -
|
322
|
-
|
323
|
-
country '850', fixed(2) >> split(3,2,2) # Democratic People's Republic of Korea
|
324
|
-
country '851', fixed(2) >> split(3,2,2) # Spare code
|
325
|
-
country '852', fixed(2) >> split(3,2,2) # Hong Kong, China
|
326
|
-
country '853', fixed(2) >> split(3,2,2) # Macao, China
|
327
|
-
country '854', fixed(2) >> split(3,2,2) # Spare code
|
328
|
-
country '855', fixed(2) >> split(3,2,2) # Cambodia (Kingdom of)
|
329
|
-
country '856', fixed(2) >> split(3,2,2) # Lao People's Democratic Republic
|
330
|
-
country '857', fixed(2) >> split(3,2,2) # Spare code
|
331
|
-
country '858', fixed(2) >> split(3,2,2) # Spare code
|
332
|
-
country '859', fixed(2) >> split(3,2,2) # Spare code
|
333
|
-
|
334
|
-
country '870', fixed(2) >> split(3,2,2) # Inmarsat SNAC
|
335
|
-
country '871', fixed(2) >> split(3,2,2) # Inmarsat (Atlantic Ocean-East)
|
336
|
-
country '872', fixed(2) >> split(3,2,2) # Inmarsat (Pacific Ocean)
|
337
|
-
country '873', fixed(2) >> split(3,2,2) # Inmarsat (Indian Ocean)
|
338
|
-
country '874', fixed(2) >> split(3,2,2) # Inmarsat (Atlantic Ocean-West)
|
339
|
-
country '875', fixed(2) >> split(3,2,2) # Reserved - Maritime Mobile Service Applications
|
340
|
-
country '876', fixed(2) >> split(3,2,2) # Reserved - Maritime Mobile Service Applications
|
341
|
-
country '877', fixed(2) >> split(3,2,2) # Reserved - Maritime Mobile Service Applications
|
342
|
-
country '878', fixed(2) >> split(3,2,2) # Universal Personal Telecommunication Service (UPT)
|
343
|
-
country '879', fixed(2) >> split(3,2,2) # Reserved for national non-commercial purposes
|
344
|
-
|
345
|
-
country '880', fixed(2) >> split(3,2,2) # Bangladesh (People's Republic of)
|
346
|
-
country '881', fixed(2) >> split(3,2,2) # International Mobile, shared code
|
347
|
-
country '882', fixed(2) >> split(3,2,2) # International Networks, shared code
|
348
|
-
country '883', fixed(2) >> split(3,2,2) # -
|
349
|
-
country '884', fixed(2) >> split(3,2,2) # -
|
350
|
-
country '885', fixed(2) >> split(3,2,2) # -
|
351
|
-
country '886', fixed(2) >> split(3,2,2) # Reserved
|
352
|
-
country '887', fixed(2) >> split(3,2,2) # -
|
353
|
-
country '888', fixed(2) >> split(3,2,2) # Reserved for future global service
|
354
|
-
country '889', fixed(2) >> split(3,2,2) # -
|
355
|
-
|
356
|
-
country '890', fixed(2) >> split(3,2,2) # -
|
357
|
-
country '891', fixed(2) >> split(3,2,2) # -
|
358
|
-
country '892', fixed(2) >> split(3,2,2) # -
|
359
|
-
country '893', fixed(2) >> split(3,2,2) # -
|
360
|
-
country '894', fixed(2) >> split(3,2,2) # -
|
361
|
-
country '895', fixed(2) >> split(3,2,2) # -
|
362
|
-
country '896', fixed(2) >> split(3,2,2) # -
|
363
|
-
country '897', fixed(2) >> split(3,2,2) # -
|
364
|
-
country '898', fixed(2) >> split(3,2,2) # -
|
365
|
-
country '899', fixed(2) >> split(3,2,2) # -
|
366
|
-
|
367
|
-
country '960', fixed(2) >> split(3,2,2) # Maldives (Republic of)
|
368
|
-
country '961', fixed(2) >> split(3,2,2) # Lebanon
|
369
|
-
country '962', fixed(2) >> split(3,2,2) # Jordan (Hashemite Kingdom of)
|
370
|
-
country '963', fixed(2) >> split(3,2,2) # Syrian Arab Republic
|
371
|
-
country '964', fixed(2) >> split(3,2,2) # Iraq (Republic of)
|
372
|
-
country '965', fixed(2) >> split(3,2,2) # Kuwait (State of)
|
373
|
-
country '966', fixed(2) >> split(3,2,2) # Saudi Arabia (Kingdom of)
|
374
|
-
country '967', fixed(2) >> split(3,2,2) # Yemen (Republic of)
|
375
|
-
country '968', fixed(2) >> split(3,2,2) # Oman (Sultanate of)
|
376
|
-
country '969', fixed(2) >> split(3,2,2) # Reserved - reservation currently under investigation
|
377
|
-
|
378
|
-
country '970', fixed(2) >> split(3,2,2) # Reserved
|
379
|
-
country '971', fixed(2) >> split(3,2,2) # United Arab Emirates
|
380
|
-
country '972', fixed(2) >> split(3,2,2) # Israel (State of)
|
381
|
-
country '973', fixed(2) >> split(3,2,2) # Bahrain (Kingdom of)
|
382
|
-
country '974', fixed(2) >> split(3,2,2) # Qatar (State of)
|
383
|
-
country '975', fixed(2) >> split(3,2,2) # Bhutan (Kingdom of)
|
384
|
-
country '976', fixed(2) >> split(3,2,2) # Mongolia
|
385
|
-
country '977', fixed(2) >> split(3,2,2) # Nepal
|
386
|
-
country '978', fixed(2) >> split(3,2,2) # -
|
387
|
-
country '979', fixed(2) >> split(3,2,2) # International Premium Rate Service (IPRS)
|
388
|
-
|
389
|
-
country '990', fixed(2) >> split(3,2,2) # Spare code
|
390
|
-
country '991', fixed(2) >> split(3,2,2) # Trial of a proposed new international telecommunication public correspondence service, shared code
|
391
|
-
country '992', fixed(2) >> split(3,2,2) # Tajikistan (Republic of)
|
392
|
-
country '993', fixed(2) >> split(3,2,2) # Turkmenistan
|
393
|
-
country '994', fixed(2) >> split(3,2,2) # Azerbaijani Republic
|
394
|
-
country '995', fixed(2) >> split(3,2,2) # Georgia
|
395
|
-
country '996', fixed(2) >> split(3,2,2) # Kyrgyz Republic
|
396
|
-
country '997', fixed(2) >> split(3,2,2) # Spare code
|
397
|
-
country '998', fixed(2) >> split(3,2,2) # Uzbekistan (Republic of)
|
398
|
-
country '999', fixed(2) >> split(3,2,2) # Reserved for possible future use within the Telecommunications for Disaster Relief (TDR) concept
|
399
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
# TODO Move this into the country definitions.
|
2
|
-
|
3
|
-
# Egyptian phone numbers.
|
4
|
-
#
|
5
|
-
# http://en.wikipedia.org/wiki/Telephone_numbers_in_Egypt
|
6
|
-
#
|
7
|
-
ndcs = [
|
8
|
-
'2', # Cairo/Giza
|
9
|
-
'3', # Alexandria
|
10
|
-
]
|
11
|
-
|
12
|
-
# TODO Change how one_of works. max_length should be optional.
|
13
|
-
#
|
14
|
-
Phony.define do
|
15
|
-
Phony::Countries::Egypt = one_of('800') >> split(7) |
|
16
|
-
one_of(ndcs, :max_length => 2) >> split(8)
|
17
|
-
end
|