File Coverage

blib/lib/Number/Phone/StubCountry/ES.pm
Criterion Covered Total %
statement 17 17 100.0
branch 2 2 100.0
condition n/a
subroutine 5 5 100.0
pod 1 1 100.0
total 25 25 100.0


line stmt bran cond sub pod time code
1             # automatically generated file, don't edit
2              
3              
4              
5             # Copyright 2023 David Cantrell, derived from data from libphonenumber
6             # http://code.google.com/p/libphonenumber/
7             #
8             # Licensed under the Apache License, Version 2.0 (the "License");
9             # you may not use this file except in compliance with the License.
10             # You may obtain a copy of the License at
11             #
12             # http://www.apache.org/licenses/LICENSE-2.0
13             #
14             # Unless required by applicable law or agreed to in writing, software
15             # distributed under the License is distributed on an "AS IS" BASIS,
16             # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17             # See the License for the specific language governing permissions and
18             # limitations under the License.
19             package Number::Phone::StubCountry::ES;
20 2     2   1204 use base qw(Number::Phone::StubCountry);
  2         7  
  2         229  
21              
22 2     2   17 use strict;
  2         8  
  2         45  
23 2     2   9 use warnings;
  2         7  
  2         50  
24 2     2   12 use utf8;
  2         15  
  2         11  
25             our $VERSION = 1.20230614174403;
26              
27             my $formatters = [
28             {
29             'format' => '$1',
30             'intl_format' => 'NA',
31             'leading_digits' => '905',
32             'pattern' => '(\\d{4})'
33             },
34             {
35             'format' => '$1',
36             'intl_format' => 'NA',
37             'leading_digits' => '[79]9',
38             'pattern' => '(\\d{6})'
39             },
40             {
41             'format' => '$1 $2 $3',
42             'leading_digits' => '[89]00',
43             'pattern' => '(\\d{3})(\\d{3})(\\d{3})'
44             },
45             {
46             'format' => '$1 $2 $3 $4',
47             'leading_digits' => '[5-9]',
48             'pattern' => '(\\d{3})(\\d{2})(\\d{2})(\\d{2})'
49             }
50             ];
51              
52             my $validators = {
53             'fixed_line' => '
54             96906(?:
55             0[0-8]|
56             1[1-9]|
57             [2-9]\\d
58             )\\d\\d|
59             9(?:
60             69(?:
61             0[0-57-9]|
62             [1-9]\\d
63             )|
64             73(?:
65             [0-8]\\d|
66             9[1-9]
67             )
68             )\\d{4}|
69             (?:
70             8(?:
71             [1356]\\d|
72             [28][0-8]|
73             [47][1-9]
74             )|
75             9(?:
76             [135]\\d|
77             [268][0-8]|
78             4[1-9]|
79             7[124-9]
80             )
81             )\\d{6}
82             ',
83             'geographic' => '
84             96906(?:
85             0[0-8]|
86             1[1-9]|
87             [2-9]\\d
88             )\\d\\d|
89             9(?:
90             69(?:
91             0[0-57-9]|
92             [1-9]\\d
93             )|
94             73(?:
95             [0-8]\\d|
96             9[1-9]
97             )
98             )\\d{4}|
99             (?:
100             8(?:
101             [1356]\\d|
102             [28][0-8]|
103             [47][1-9]
104             )|
105             9(?:
106             [135]\\d|
107             [268][0-8]|
108             4[1-9]|
109             7[124-9]
110             )
111             )\\d{6}
112             ',
113             'mobile' => '
114             (?:
115             590[16]00\\d|
116             9(?:
117             6906(?:
118             09|
119             10
120             )|
121             7390\\d\\d
122             )
123             )\\d\\d|
124             (?:
125             6\\d|
126             7[1-48]
127             )\\d{7}
128             ',
129             'pager' => '',
130             'personal_number' => '70\\d{7}',
131             'specialrate' => '(90[12]\\d{6})|(80[367]\\d{6})|(51\\d{7})',
132             'toll_free' => '[89]00\\d{6}',
133             'voip' => ''
134             };
135             my %areanames = ();
136             $areanames{en} = {"34975", "Soria",
137             "34850", "Almería",
138             "34955", "Seville",
139             "3491", "Madrid",
140             "34953", "Jaén",
141             "34882", "Lugo",
142             "34861", "Valencia",
143             "349691", "Cuenca",
144             "3496905", "Cuenca",
145             "349692", "Cuenca",
146             "349690617", "Cuenca",
147             "34924", "Badajoz",
148             "34943", "Guipúzcoa",
149             "34969063", "Cuenca",
150             "34945", "Araba",
151             "349690616", "Cuenca",
152             "3497394", "Lleida",
153             "34987", "León",
154             "349690607", "Cuenca",
155             "34866", "Alicante",
156             "34928", "Las\ Palmas",
157             "349690606", "Cuenca",
158             "34921", "Segovia",
159             "34857", "Cordova",
160             "34869", "Cuenca",
161             "34942", "Cantabria",
162             "34877", "Tarragona",
163             "349694", "Cuenca",
164             "349730", "Lleida",
165             "3497393", "Lleida",
166             "349736", "Lleida",
167             "34980", "Zamora",
168             "3497399", "Lleida",
169             "3493", "Barcelona",
170             "349690601", "Cuenca",
171             "349690604", "Cuenca",
172             "34926", "Ciudad\ Real",
173             "34972", "Girona",
174             "34868", "Murcia",
175             "34847", "Burgos",
176             "349690611", "Cuenca",
177             "34885", "Asturias",
178             "34952", "Málaga",
179             "34883", "Valladolid",
180             "34864", "Castellón",
181             "349690614", "Cuenca",
182             "34976", "Zaragoza",
183             "34922", "Tenerife",
184             "349690602", "Cuenca",
185             "349698", "Cuenca",
186             "34941", "La\ Rioja",
187             "34956", "Cádiz",
188             "349690612", "Cuenca",
189             "34946", "Bizkaia",
190             "34888", "Ourense",
191             "349690613", "Cuenca",
192             "34971", "Balearic\ Islands",
193             "34960", "Valencia",
194             "3496902", "Cuenca",
195             "349690603", "Cuenca",
196             "34865", "Alicante",
197             "34863", "Valencia",
198             "34884", "Asturias",
199             "34951", "Málaga",
200             "34827", "Cáceres",
201             "3497397", "Lleida",
202             "34974", "Huesca",
203             "34958", "Granada",
204             "34881", "La\ Coruña",
205             "349737", "Lleida",
206             "349695", "Cuenca",
207             "34969064", "Cuenca",
208             "34949", "Guadalajara",
209             "34978", "Teruel",
210             "34862", "Valencia",
211             "34954", "Seville",
212             "3497398", "Lleida",
213             "34967", "Albacete",
214             "34925", "Toledo",
215             "34959", "Huelva",
216             "34923", "Salamanca",
217             "34944", "Bizkaia",
218             "34820", "Ávila",
219             "3496901", "Cuenca",
220             "349693", "Cuenca",
221             "34886", "Pontevedra",
222             "34979", "Palencia",
223             "34948", "Navarre",
224             "3496907", "Cuenca",
225             "34875", "Soria",
226             "34873", "Lleida",
227             "349690608", "Cuenca",
228             "34950", "Almería",
229             "34982", "Lugo",
230             "34853", "Jaén",
231             "3481", "Madrid",
232             "34855", "Seville",
233             "349734", "Lleida",
234             "34961", "Valencia",
235             "349690619", "Cuenca",
236             "349690618", "Cuenca",
237             "34824", "Badajoz",
238             "34845", "Araba",
239             "34843", "Guipúzcoa",
240             "3496908", "Cuenca",
241             "34887", "León",
242             "349696", "Cuenca",
243             "34828", "Las\ Palmas",
244             "34966", "Alicante",
245             "3497391", "Lleida",
246             "34969068", "Cuenca",
247             "34957", "Cordova",
248             "34821", "Segovia",
249             "34842", "Cantabria",
250             "34969069", "Cuenca",
251             "349732", "Lleida",
252             "34969065", "Cuenca",
253             "349731", "Lleida",
254             "34977", "Tarragona",
255             "3496900", "Cuenca",
256             "349690600", "Cuenca",
257             "3483", "Barcelona",
258             "34880", "Zamora",
259             "349690615", "Cuenca",
260             "34969066", "Cuenca",
261             "34968", "Murcia",
262             "34826", "Ciudad\ Real",
263             "34872", "Girona",
264             "3497392", "Lleida",
265             "34947", "Burgos",
266             "34969067", "Cuenca",
267             "349690605", "Cuenca",
268             "34852", "Málaga",
269             "34983", "Valladolid",
270             "34964", "Castellón",
271             "34985", "Asturias",
272             "34876", "Zaragoza",
273             "34822", "Tenerife",
274             "34841", "La\ Rioja",
275             "34856", "Cádiz",
276             "349699", "Cuenca",
277             "349735", "Lleida",
278             "3496903", "Cuenca",
279             "349697", "Cuenca",
280             "34846", "Bizkaia",
281             "3496909", "Cuenca",
282             "34988", "Ourense",
283             "34871", "Balearic\ Islands",
284             "34860", "Valencia",
285             "34984", "Asturias",
286             "34963", "Valencia",
287             "349733", "Lleida",
288             "34965", "Alicante",
289             "34927", "Cáceres",
290             "34851", "Málaga",
291             "349738", "Lleida",
292             "3497396", "Lleida",
293             "34858", "Granada",
294             "34874", "Huesca",
295             "34981", "La\ Coruña",
296             "34849", "Guadalajara",
297             "3497395", "Lleida",
298             "34854", "Seville",
299             "34962", "Valencia",
300             "34878", "Teruel",
301             "34867", "Albacete",
302             "3496904", "Cuenca",
303             "34823", "Salamanca",
304             "34825", "Toledo",
305             "34859", "Huelva",
306             "34844", "Bizkaia",
307             "34920", "Ávila",
308             "34969062", "Cuenca",
309             "34879", "Palencia",
310             "34986", "Pontevedra",
311             "34848", "Navarre",};
312             $areanames{es} = {"3497391", "Lérida",
313             "34845", "Álava",
314             "349734", "Lérida",
315             "34873", "Lérida",
316             "3497392", "Lérida",
317             "34872", "Gerona",
318             "349731", "Lérida",
319             "349732", "Lérida",
320             "34957", "Córdoba",
321             "349733", "Lérida",
322             "34871", "Baleares",
323             "34988", "Orense",
324             "34846", "Vizcaya",
325             "349735", "Lérida",
326             "34848", "Navarra",
327             "34844", "Vizcaya",
328             "34854", "Sevilla",
329             "3497395", "Lérida",
330             "34981", "A\ Coruña",
331             "3497396", "Lérida",
332             "349738", "Lérida",
333             "34945", "Álava",
334             "3497394", "Lérida",
335             "34955", "Sevilla",
336             "34850", "Álmería",
337             "34972", "Gerona",
338             "3497399", "Lérida",
339             "349736", "Lérida",
340             "3497393", "Lérida",
341             "349730", "Lérida",
342             "34857", "Córdoba",
343             "34971", "Baleares",
344             "34888", "Orense",
345             "34946", "Vizcaya",
346             "34948", "Navarra",
347             "34944", "Vizcaya",
348             "3497398", "Lérida",
349             "34954", "Sevilla",
350             "349737", "Lérida",
351             "3497397", "Lérida",};
352              
353             sub new {
354 22     22 1 45 my $class = shift;
355 22         36 my $number = shift;
356 22         138 $number =~ s/(^\+34|\D)//g;
357 22         140 my $self = bless({ country_code => '34', number => $number, formatters => $formatters, validators => $validators, areanames => \%areanames}, $class);
358 22 100       117 return $self->is_valid() ? $self : undef;
359             }
360             1;