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