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   1281 use base qw(Number::Phone::StubCountry);
  2         10  
  2         235  
21              
22 2     2   25 use strict;
  2         16  
  2         55  
23 2     2   14 use warnings;
  2         5  
  2         53  
24 2     2   14 use utf8;
  2         9  
  2         15  
25             our $VERSION = 1.20230307181420;
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} = {"34969067", "Cuenca",
137             "349738", "Lleida",
138             "34964", "Castellón",
139             "349737", "Lleida",
140             "34954", "Seville",
141             "34984", "Asturias",
142             "349690603", "Cuenca",
143             "349697", "Cuenca",
144             "349698", "Cuenca",
145             "3496902", "Cuenca",
146             "34962", "Valencia",
147             "34969066", "Cuenca",
148             "34952", "Málaga",
149             "34982", "Lugo",
150             "34820", "Ávila",
151             "34969065", "Cuenca",
152             "349690606", "Cuenca",
153             "34865", "Alicante",
154             "34953", "Jaén",
155             "34861", "Valencia",
156             "34983", "Valladolid",
157             "34868", "Murcia",
158             "34826", "Ciudad\ Real",
159             "34858", "Granada",
160             "34881", "La\ Coruña",
161             "34885", "Asturias",
162             "34855", "Seville",
163             "34963", "Valencia",
164             "34927", "Cáceres",
165             "34851", "Málaga",
166             "3496908", "Cuenca",
167             "34888", "Ourense",
168             "34976", "Zaragoza",
169             "34846", "Bizkaia",
170             "34969062", "Cuenca",
171             "34947", "Burgos",
172             "34877", "Tarragona",
173             "349690607", "Cuenca",
174             "34969063", "Cuenca",
175             "3497399", "Lleida",
176             "34849", "Guadalajara",
177             "34979", "Palencia",
178             "34862", "Valencia",
179             "349690600", "Cuenca",
180             "349690601", "Cuenca",
181             "3496900", "Cuenca",
182             "34882", "Lugo",
183             "34920", "Ávila",
184             "3497393", "Lleida",
185             "34852", "Málaga",
186             "349690608", "Cuenca",
187             "349690602", "Cuenca",
188             "34864", "Castellón",
189             "3496901", "Cuenca",
190             "3497395", "Lleida",
191             "34884", "Asturias",
192             "34854", "Seville",
193             "349699", "Cuenca",
194             "34977", "Tarragona",
195             "34847", "Burgos",
196             "34946", "Bizkaia",
197             "34876", "Zaragoza",
198             "3497394", "Lleida",
199             "34969068", "Cuenca",
200             "34949", "Guadalajara",
201             "34879", "Palencia",
202             "34968", "Murcia",
203             "349690604", "Cuenca",
204             "3496907", "Cuenca",
205             "34883", "Valladolid",
206             "34965", "Alicante",
207             "34961", "Valencia",
208             "34853", "Jaén",
209             "34988", "Ourense",
210             "34955", "Seville",
211             "34827", "Cáceres",
212             "349690605", "Cuenca",
213             "34951", "Málaga",
214             "34863", "Valencia",
215             "34981", "La\ Coruña",
216             "34985", "Asturias",
217             "34926", "Ciudad\ Real",
218             "34958", "Granada",
219             "34956", "Cádiz",
220             "34928", "Las\ Palmas",
221             "34887", "León",
222             "34921", "Segovia",
223             "34857", "Cordova",
224             "349732", "Lleida",
225             "34925", "Toledo",
226             "34986", "Pontevedra",
227             "349690615", "Cuenca",
228             "34959", "Huelva",
229             "3497398", "Lleida",
230             "34867", "Albacete",
231             "34823", "Salamanca",
232             "34969064", "Cuenca",
233             "349694", "Cuenca",
234             "349690614", "Cuenca",
235             "34966", "Alicante",
236             "349692", "Cuenca",
237             "3496909", "Cuenca",
238             "34843", "Guipúzcoa",
239             "34878", "Teruel",
240             "34948", "Navarre",
241             "349734", "Lleida",
242             "34875", "Soria",
243             "34945", "Araba",
244             "34941", "La\ Rioja",
245             "34871", "Balearic\ Islands",
246             "3481", "Madrid",
247             "34824", "Badajoz",
248             "34842", "Cantabria",
249             "34972", "Girona",
250             "349696", "Cuenca",
251             "349690612", "Cuenca",
252             "34822", "Tenerife",
253             "349690618", "Cuenca",
254             "34980", "Zamora",
255             "3497392", "Lleida",
256             "34950", "Almería",
257             "3493", "Barcelona",
258             "349690619", "Cuenca",
259             "349736", "Lleida",
260             "349690611", "Cuenca",
261             "34960", "Valencia",
262             "34974", "Huesca",
263             "34844", "Bizkaia",
264             "349735", "Lleida",
265             "34873", "Lleida",
266             "34943", "Guipúzcoa",
267             "3491", "Madrid",
268             "349690617", "Cuenca",
269             "34975", "Soria",
270             "34845", "Araba",
271             "34841", "La\ Rioja",
272             "34971", "Balearic\ Islands",
273             "3496904", "Cuenca",
274             "34848", "Navarre",
275             "34978", "Teruel",
276             "34869", "Cuenca",
277             "34886", "Pontevedra",
278             "34957", "Cordova",
279             "34821", "Segovia",
280             "34825", "Toledo",
281             "3497397", "Lleida",
282             "34987", "León",
283             "34856", "Cádiz",
284             "34828", "Las\ Palmas",
285             "349695", "Cuenca",
286             "34866", "Alicante",
287             "34967", "Albacete",
288             "34923", "Salamanca",
289             "349690616", "Cuenca",
290             "34859", "Huelva",
291             "3483", "Barcelona",
292             "34850", "Almería",
293             "34922", "Tenerife",
294             "34880", "Zamora",
295             "349733", "Lleida",
296             "349731", "Lleida",
297             "3496903", "Cuenca",
298             "34874", "Huesca",
299             "34944", "Bizkaia",
300             "34860", "Valencia",
301             "3497396", "Lleida",
302             "3497391", "Lleida",
303             "349693", "Cuenca",
304             "349690613", "Cuenca",
305             "34924", "Badajoz",
306             "34969069", "Cuenca",
307             "349730", "Lleida",
308             "349691", "Cuenca",
309             "34872", "Girona",
310             "34942", "Cantabria",
311             "3496905", "Cuenca",};
312             $areanames{es} = {"34946", "Vizcaya",
313             "3497394", "Lérida",
314             "34981", "A\ Coruña",
315             "34988", "Orense",
316             "34955", "Sevilla",
317             "3497393", "Lérida",
318             "34854", "Sevilla",
319             "3497395", "Lérida",
320             "34888", "Orense",
321             "3497399", "Lérida",
322             "34846", "Vizcaya",
323             "349737", "Lérida",
324             "349738", "Lérida",
325             "34954", "Sevilla",
326             "349733", "Lérida",
327             "34850", "Álmería",
328             "3497396", "Lérida",
329             "34944", "Vizcaya",
330             "349731", "Lérida",
331             "3497391", "Lérida",
332             "34872", "Gerona",
333             "349730", "Lérida",
334             "34873", "Lérida",
335             "349735", "Lérida",
336             "34848", "Navarra",
337             "34971", "Baleares",
338             "34845", "Álava",
339             "3497397", "Lérida",
340             "34957", "Córdoba",
341             "34972", "Gerona",
342             "3497392", "Lérida",
343             "349736", "Lérida",
344             "34844", "Vizcaya",
345             "349732", "Lérida",
346             "34857", "Córdoba",
347             "3497398", "Lérida",
348             "34871", "Baleares",
349             "34945", "Álava",
350             "34948", "Navarra",
351             "349734", "Lérida",};
352              
353             sub new {
354 22     22 1 45 my $class = shift;
355 22         33 my $number = shift;
356 22         143 $number =~ s/(^\+34|\D)//g;
357 22         144 my $self = bless({ country_code => '34', number => $number, formatters => $formatters, validators => $validators, areanames => \%areanames}, $class);
358 22 100       91 return $self->is_valid() ? $self : undef;
359             }
360             1;