File Coverage

blib/lib/Number/Phone/StubCountry/IE.pm
Criterion Covered Total %
statement 20 20 100.0
branch 3 4 75.0
condition n/a
subroutine 5 5 100.0
pod 1 1 100.0
total 29 30 96.6


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::IE;
20 2     2   1319 use base qw(Number::Phone::StubCountry);
  2         4  
  2         319  
21              
22 2     2   16 use strict;
  2         4  
  2         51  
23 2     2   9 use warnings;
  2         4  
  2         51  
24 2     2   10 use utf8;
  2         4  
  2         19  
25             our $VERSION = 1.20230903131447;
26              
27             my $formatters = [
28             {
29             'format' => '$1 $2',
30             'leading_digits' => '
31             2[24-9]|
32             47|
33             58|
34             6[237-9]|
35             9[35-9]
36             ',
37             'national_rule' => '(0$1)',
38             'pattern' => '(\\d{2})(\\d{5})'
39             },
40             {
41             'format' => '$1 $2',
42             'leading_digits' => '[45]0',
43             'national_rule' => '(0$1)',
44             'pattern' => '(\\d{3})(\\d{5})'
45             },
46             {
47             'format' => '$1 $2 $3',
48             'leading_digits' => '1',
49             'national_rule' => '(0$1)',
50             'pattern' => '(\\d)(\\d{3,4})(\\d{4})'
51             },
52             {
53             'format' => '$1 $2 $3',
54             'leading_digits' => '
55             [2569]|
56             4[1-69]|
57             7[14]
58             ',
59             'national_rule' => '(0$1)',
60             'pattern' => '(\\d{2})(\\d{3})(\\d{3,4})'
61             },
62             {
63             'format' => '$1 $2 $3',
64             'leading_digits' => '70',
65             'national_rule' => '0$1',
66             'pattern' => '(\\d{3})(\\d{3})(\\d{3})'
67             },
68             {
69             'format' => '$1 $2 $3',
70             'leading_digits' => '81',
71             'national_rule' => '(0$1)',
72             'pattern' => '(\\d{3})(\\d{3})(\\d{3})'
73             },
74             {
75             'format' => '$1 $2 $3',
76             'leading_digits' => '[78]',
77             'national_rule' => '0$1',
78             'pattern' => '(\\d{2})(\\d{3})(\\d{4})'
79             },
80             {
81             'format' => '$1 $2 $3',
82             'leading_digits' => '1',
83             'pattern' => '(\\d{4})(\\d{3})(\\d{3})'
84             },
85             {
86             'format' => '$1 $2 $3',
87             'leading_digits' => '4',
88             'national_rule' => '(0$1)',
89             'pattern' => '(\\d{2})(\\d{4})(\\d{4})'
90             },
91             {
92             'format' => '$1 $2 $3 $4',
93             'leading_digits' => '8',
94             'national_rule' => '0$1',
95             'pattern' => '(\\d{2})(\\d)(\\d{3})(\\d{4})'
96             }
97             ];
98              
99             my $validators = {
100             'fixed_line' => '
101             (?:
102             1\\d|
103             21
104             )\\d{6,7}|
105             (?:
106             2[24-9]|
107             4(?:
108             0[24]|
109             5\\d|
110             7
111             )|
112             5(?:
113             0[45]|
114             1\\d|
115             8
116             )|
117             6(?:
118             1\\d|
119             [237-9]
120             )|
121             9(?:
122             1\\d|
123             [35-9]
124             )
125             )\\d{5}|
126             (?:
127             23|
128             4(?:
129             [1-469]|
130             8\\d
131             )|
132             5[23679]|
133             6[4-6]|
134             7[14]|
135             9[04]
136             )\\d{7}
137             ',
138             'geographic' => '
139             (?:
140             1\\d|
141             21
142             )\\d{6,7}|
143             (?:
144             2[24-9]|
145             4(?:
146             0[24]|
147             5\\d|
148             7
149             )|
150             5(?:
151             0[45]|
152             1\\d|
153             8
154             )|
155             6(?:
156             1\\d|
157             [237-9]
158             )|
159             9(?:
160             1\\d|
161             [35-9]
162             )
163             )\\d{5}|
164             (?:
165             23|
166             4(?:
167             [1-469]|
168             8\\d
169             )|
170             5[23679]|
171             6[4-6]|
172             7[14]|
173             9[04]
174             )\\d{7}
175             ',
176             'mobile' => '
177             8(?:
178             22|
179             [35-9]\\d
180             )\\d{6}
181             ',
182             'pager' => '',
183             'personal_number' => '700\\d{6}',
184             'specialrate' => '(18[59]0\\d{6})|(
185             15(?:
186             1[2-8]|
187             [2-8]0|
188             9[089]
189             )\\d{6}
190             )|(818\\d{6})',
191             'toll_free' => '1800\\d{6}',
192             'voip' => '76\\d{7}'
193             };
194             my %areanames = ();
195             $areanames{en} = {"3535989", "Athy",
196             "353657", "Ennistymon",
197             "3535644", "Castlecomer",
198             "35359", "Carlow\/Muine\ Bheag\/Athy\/Baltinglass",
199             "3534290", "Dundalk",
200             "3535786", "Portlaoise",
201             "353496", "Cavan",
202             "353624", "Tipperary",
203             "3534333", "Longford",
204             "35325", "Fermoy",
205             "353629", "Cashel",
206             "353619", "Scariff",
207             "353916", "Gort",
208             "3535678", "Kilkenny",
209             "35361999", "Limerick\/Scariff",
210             "353949289", "Castlebar",
211             "353668", "Tralee\/Dingle\/Killorglin\/Cahersiveen",
212             "353404", "Wicklow",
213             "353719332", "Sligo",
214             "3534297", "Castleblaney",
215             "353432", "Longford",
216             "35363", "Rathluirc",
217             "353653", "Ennis",
218             "3534510", "Kildare",
219             "3534699", "Navan\/Kells\/Trim\/Edenderry\/Enfield",
220             "3535261", "Clonmel",
221             "353516", "Carrick\-on\-Suir",
222             "353539902", "Enniscorthy",
223             "353622", "Cashel",
224             "353749214", "Letterkenny",
225             "35341", "Drogheda",
226             "353448", "Tyrellspass",
227             "353651", "Ennis\/Ennistymon\/Kilrush",
228             "353570", "Portlaoise",
229             "35327", "Bantry",
230             "353909902", "Ballinasloe",
231             "3535997", "Muine\ Bheag",
232             "3534120", "Drogheda\/Ardee",
233             "353711", "Sligo",
234             "353561", "Kilkenny",
235             "35399", "Kilronan",
236             "353402", "Arklow",
237             "35357859", "Portlaoise",
238             "3539096", "Ballinasloe",
239             "3536692", "Dingle",
240             "353467", "Navan",
241             "353455", "Kildare",
242             "3534693", "Kells",
243             "3536670", "Tralee\/Dingle\/Killorglin\/Cahersiveen",
244             "353504", "Thurles",
245             "3534694", "Trim",
246             "3534367", "Granard",
247             "353669100", "Killorglin",
248             "353458", "Naas",
249             "35357850", "Portlaoise",
250             "35391", "Galway",
251             "353450", "Naas\/Kildare\/Curragh",
252             "3534695", "Enfield",
253             "353749889", "Letterkenny",
254             "3536599", "Ennis\/Ennistymon\/Kilrush",
255             "35351", "Waterford",
256             "353463", "Navan\/Kells\/Trim\/Edenderry\/Enfield",
257             "353218", "Cork\/Kinsale\/Coachford",
258             "35352", "Clonmel\/Cahir\/Killenaule",
259             "353949286", "Castlebar",
260             "3534492", "Tyrellspass",
261             "353949285", "Castlebar",
262             "353416", "Ardee",
263             "353475", "Clones",
264             "3535391", "Wexford",
265             "353426", "Dundalk",
266             "3537491", "Letterkenny",
267             "353461", "Navan",
268             "353470", "Monaghan\/Clones",
269             "35324", "Youghal",
270             "353478", "Monaghan",
271             "353490", "Cavan\/Cootehill\/Oldcastle\/Belturbet",
272             "3532147", "Kinsale",
273             "353498", "Oldcastle",
274             "353909903", "Ballinasloe",
275             "35394", "Castlebar\/Claremorris\/Castlerea\/Ballinrobe",
276             "353621", "Tipperary\/Cashel",
277             "353437", "Granard",
278             "353749212", "Letterkenny",
279             "353652", "Ennis",
280             "3537196", "Carrick\-on\-Shannon",
281             "35368", "Listowel",
282             "353918", "Loughrea",
283             "353495", "Cootehill",
284             "353539903", "Gorey",
285             "353623", "Tipperary",
286             "3532140", "Kinsale",
287             "35374960", "Letterkenny",
288             "353719334", "Sligo",
289             "3539490", "Castlebar",
290             "35374989", "Letterkenny",
291             "3537191", "Sligo",
292             "35322", "Mallow",
293             "3534331", "Longford",
294             "353659", "Kilrush",
295             "35321", "Cork",
296             "3537198", "Manorhamilton",
297             "353654", "Ennis",
298             "353579901", "Portlaoise",
299             "353579900", "Portlaoise",
300             "3534292", "Dundalk",
301             "353627", "Cashel",
302             "3537495", "Dungloe",
303             "35397", "Belmullet",
304             "3534497", "Castlepollard",
305             "35329", "Kanturk",
306             "3535393", "Ferns",
307             "3537493", "Buncrana",
308             "35371959", "Carrick\-on\-Shannon",
309             "35343668", "Granard",
310             "3535394", "Gorey",
311             "35366", "Tralee",
312             "3534490", "Tyrellspass",
313             "353462", "Kells",
314             "353456", "Naas",
315             "3535988", "Athy",
316             "3534696", "Enfield",
317             "3536299", "Tipperary",
318             "35343666", "Granard",
319             "35371930", "Sligo",
320             "35395", "Clifden",
321             "353428", "Dundalk",
322             "3536697", "Killorglin",
323             "353420", "Dundalk\/Carrickmacross\/Castleblaney",
324             "353901", "Athlone",
325             "353741", "Letterkenny",
326             "3534691", "Navan",
327             "353425", "Castleblaney",
328             "353476", "Monaghan",
329             "353531", "Wexford",
330             "353578510", "Portlaoise",
331             "353464", "Trim",
332             "3536690", "Killorglin",
333             "35344", "Mullingar",
334             "35357", "Portlaoise\/Abbeyleix\/Tullamore\/Birr",
335             "353949287", "Castlebar",
336             "3535964", "Baltinglass",
337             "3535986", "Athy",
338             "3534698", "Edenderry",
339             "353499", "Belturbet",
340             "3534495", "Castlepollard",
341             "3535390", "Wexford",
342             "3539097", "Portumna",
343             "3537497", "Donegal",
344             "3536477", "Rathmore",
345             "3535793", "Tullamore",
346             "35390650", "Athlone",
347             "353512", "Kilmacthomas",
348             "35393", "Tuam",
349             "353626", "Cashel",
350             "353494", "Cavan",
351             "353447", "Castlepollard",
352             "353616", "Scariff",
353             "353531203", "Gorey",
354             "35326", "Macroom",
355             "353710", "Sligo",
356             "353560", "Kilkenny",
357             "3536694", "Cahirciveen",
358             "35351999", "Waterford\/Carrick\-on\-Suir\/New\ Ross\/Kilmacthomas",
359             "35353", "Wexford\/Enniscorthy\/Ferns\/Gorey",
360             "353571", "Portlaoise",
361             "353650", "Ennis\/Ennistymon\/Kilrush",
362             "353912", "Gort",
363             "3536695", "Cahirciveen",
364             "353658", "Kilrush",
365             "3535291", "Killenaule",
366             "3534692", "Kells",
367             "3534799", "Monaghan\/Clones",
368             "3535688", "Freshford",
369             "353514", "New\ Ross",
370             "35390", "Athlone\/Ballinasloe\/Portumna\/Roscommon",
371             "35374", "Letterkenny\/Donegal\/Dungloe\/Buncrana",
372             "35369", "Newcastle\ West",
373             "3535274", "Cahir",
374             "353492", "Cootehill",
375             "353443", "Mullingar\/Castlepollard\/Tyrrellspass",
376             "3536693", "Dingle",
377             "35394925", "Castlebar",
378             "353655", "Ennis",
379             "3534368", "Granard",
380             "353451", "Naas\/Kildare\/Curragh",
381             "353217", "Coachford",
382             "3535787", "Abbeyleix",
383             "3539066", "Roscommon",
384             "3535991", "Carlow",
385             "353719330", "Sligo",
386             "3534296", "Carrickmacross",
387             "353477", "Monaghan",
388             "3536699", "Tralee\/Dingle\/Killorglin\/Cahersiveen",
389             "353453", "The\ Curragh",
390             "35361", "Limerick",
391             "353719331", "Sligo",
392             "353422", "Dundalk",
393             "3539493", "Claremorris",
394             "3534291", "Dundalk",
395             "35328", "Skibbereen",
396             "353539900", "Wexford",
397             "353471", "Monaghan\/Clones",
398             "353539901", "Wexford",
399             "353468", "Navan",
400             "35343", "Longford\/Granard",
401             "35371931", "Sligo",
402             "353460", "Navan",
403             "3534332", "Longford",
404             "353473", "Monaghan",
405             "35374920", "Letterkenny",
406             "3535677", "Kilkenny",
407             "3531", "Dublin",
408             "3539495", "Ballinrobe",
409             "353909901", "Athlone",
410             "3534298", "Castleblaney",
411             "353646700", "Killarney",
412             "353457", "Naas",
413             "353909900", "Athlone",
414             "353749900", "Letterkenny",
415             "353465", "Enfield",
416             "353646701", "Killarney",
417             "3534499", "Mullingar\/Castlepollard\/Tyrrellspass",
418             "353424", "Carrickmacross",
419             "3534496", "Castlepollard",
420             "353625", "Tipperary",
421             "3536698", "Killorglin",
422             "353493", "Belturbet",
423             "3534690", "Navan",
424             "35364", "Killarney\/Rathmore",
425             "353909897", "Athlone",
426             "353620", "Tipperary\/Cashel",
427             "35398", "Westport",
428             "353628", "Tipperary",
429             "3534697", "Edenderry",
430             "353949288", "Castlebar",
431             "353491", "Cavan\/Cootehill\/Oldcastle\/Belturbet",
432             "35371932", "Sligo",
433             "3536691", "Dingle",
434             "353569901", "Kilkenny",
435             "353719344", "Sligo",
436             "353438", "Granard",
437             "353656", "Ennis",
438             "353531202", "Enniscorthy",
439             "3534498", "Castlepollard",
440             "353497", "Cavan",
441             "3534199", "Drogheda\/Ardee",
442             "353719900", "Sligo",
443             "35358", "Dungarvan",
444             "3536696", "Cahirciveen",
445             "353569900", "Kilkenny",
446             "3534299", "Dundalk\/Carrickmacross\/Castleblaney",
447             "3534491", "Tyrellspass",
448             "3535987", "Athy",
449             "3535791", "Birr",
450             "3535392", "Enniscorthy",
451             "353719010", "Sligo",
452             "3534293", "Dundalk",
453             "35367", "Nenagh",
454             "353472", "Clones",
455             "3539064", "Athlone",
456             "353949290", "Castlebar",
457             "353454", "The\ Curragh",
458             "353949291", "Castlebar",
459             "3534999", "Cavan\/Cootehill\/Oldcastle\/Belturbet",
460             "3534330", "Longford",
461             "353427", "Dundalk",
462             "35396", "Ballina",
463             "353719401", "Sligo",
464             "353749211", "Letterkenny",
465             "353469907", "Edenderry",
466             "3539498", "Castlerea",
467             "3534295", "Carrickmacross",
468             "35343669", "Granard",
469             "353749210", "Letterkenny",
470             "353459", "Naas",
471             "353505", "Roscrea",
472             "3534294", "Dundalk",
473             "353469900", "Navan",
474             "353474", "Clones",
475             "353749888", "Letterkenny",
476             "353452", "Kildare",
477             "3534369", "Granard",
478             "353466", "Edenderry",
479             "353530", "Wexford",
480             "35323", "Bandon",
481             "353469901", "Navan",
482             "35371", "Sligo\/Manorhamilton\/Carrick\-on\-Shannon",
483             "353423", "Dundalk\/Carrickmacross\/Castleblaney",
484             "35356", "Kilkenny\/Castlecomer\/Freshford",
485             "3539496", "Castlerea",
486             "353719335", "Sligo",
487             "353740", "Letterkenny",
488             "353900", "Athlone",
489             "353421", "Dundalk\/Carrickmacross\/Castleblaney",
490             "353479", "Monaghan",
491             "3532141", "Kinsale",
492             "3536466", "Killarney",
493             "3534791", "Monaghan\/Clones",
494             "35343667", "Granard",};
495              
496             sub new {
497 25     25 1 55 my $class = shift;
498 25         42 my $number = shift;
499 25         162 $number =~ s/(^\+353|\D)//g;
500 25         174 my $self = bless({ country_code => '353', number => $number, formatters => $formatters, validators => $validators, areanames => \%areanames}, $class);
501 25 100       116 return $self if ($self->is_valid());
502 1         3 $number =~ s/^(?:0)//;
503 1         9 $self = bless({ country_code => '353', number => $number, formatters => $formatters, validators => $validators, areanames => \%areanames}, $class);
504 1 50       4 return $self->is_valid() ? $self : undef;
505             }
506             1;