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   1321 use base qw(Number::Phone::StubCountry);
  2         6  
  2         288  
21              
22 2     2   17 use strict;
  2         6  
  2         46  
23 2     2   12 use warnings;
  2         4  
  2         66  
24 2     2   11 use utf8;
  2         5  
  2         12  
25             our $VERSION = 1.20230614174403;
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} = {"353654", "Ennis",
196             "35371", "Sligo\/Manorhamilton\/Carrick\-on\-Shannon",
197             "3534298", "Castleblaney",
198             "353469901", "Navan",
199             "3534999", "Cavan\/Cootehill\/Oldcastle\/Belturbet",
200             "35351", "Waterford",
201             "353949285", "Castlebar",
202             "353496", "Cavan",
203             "353949290", "Castlebar",
204             "3532141", "Kinsale",
205             "353478", "Monaghan",
206             "35341", "Drogheda",
207             "353622", "Cashel",
208             "3534297", "Castleblaney",
209             "353490", "Cavan\/Cootehill\/Oldcastle\/Belturbet",
210             "3539496", "Castlerea",
211             "3534499", "Mullingar\/Castlepollard\/Tyrrellspass",
212             "353621", "Tipperary\/Cashel",
213             "35322", "Mallow",
214             "3534694", "Trim",
215             "3535390", "Wexford",
216             "353427", "Dundalk",
217             "353740", "Letterkenny",
218             "3535787", "Abbeyleix",
219             "3539495", "Ballinrobe",
220             "3537493", "Buncrana",
221             "353217", "Coachford",
222             "353569901", "Kilkenny",
223             "353505", "Roscrea",
224             "35390", "Athlone\/Ballinasloe\/Portumna\/Roscommon",
225             "353909901", "Athlone",
226             "35356", "Kilkenny\/Castlecomer\/Freshford",
227             "353719401", "Sligo",
228             "3534199", "Drogheda\/Ardee",
229             "353475", "Clones",
230             "35323", "Bandon",
231             "35325", "Fermoy",
232             "35359", "Carlow\/Muine\ Bheag\/Athy\/Baltinglass",
233             "353416", "Ardee",
234             "35344", "Mullingar",
235             "3536695", "Cahirciveen",
236             "353652", "Ennis",
237             "353651", "Ennis\/Ennistymon\/Kilrush",
238             "353918", "Loughrea",
239             "35367", "Nenagh",
240             "353719332", "Sligo",
241             "353469907", "Edenderry",
242             "353459", "Naas",
243             "353539902", "Enniscorthy",
244             "353710", "Sligo",
245             "3536696", "Cahirciveen",
246             "3534693", "Kells",
247             "3534369", "Granard",
248             "353578510", "Portlaoise",
249             "353719344", "Sligo",
250             "353437", "Granard",
251             "353457", "Naas",
252             "353460", "Navan",
253             "353668", "Tralee\/Dingle\/Killorglin\/Cahersiveen",
254             "353539903", "Gorey",
255             "35358", "Dungarvan",
256             "353949288", "Castlebar",
257             "353949289", "Castlebar",
258             "35374", "Letterkenny\/Donegal\/Dungloe\/Buncrana",
259             "353560", "Kilkenny",
260             "3534699", "Navan\/Kells\/Trim\/Edenderry\/Enfield",
261             "353900", "Athlone",
262             "353624", "Tipperary",
263             "353466", "Edenderry",
264             "353473", "Monaghan",
265             "353749210", "Letterkenny",
266             "35397", "Belmullet",
267             "3534290", "Dundalk",
268             "35357859", "Portlaoise",
269             "353516", "Carrick\-on\-Suir",
270             "353749888", "Letterkenny",
271             "353749889", "Letterkenny",
272             "353655", "Ennis",
273             "353426", "Dundalk",
274             "3534497", "Castlepollard",
275             "35343667", "Granard",
276             "3534299", "Dundalk\/Carrickmacross\/Castleblaney",
277             "35371959", "Carrick\-on\-Shannon",
278             "3535997", "Muine\ Bheag",
279             "35324", "Youghal",
280             "35361999", "Limerick\/Scariff",
281             "353472", "Clones",
282             "353404", "Wicklow",
283             "353471", "Monaghan\/Clones",
284             "35343", "Longford\/Granard",
285             "3535986", "Athy",
286             "353447", "Castlepollard",
287             "3534332", "Longford",
288             "35328", "Skibbereen",
289             "3534690", "Navan",
290             "35343666", "Granard",
291             "3535394", "Gorey",
292             "35343669", "Granard",
293             "3539064", "Athlone",
294             "3537497", "Donegal",
295             "3536466", "Killarney",
296             "353719331", "Sligo",
297             "353719334", "Sligo",
298             "3534498", "Castlepollard",
299             "353497", "Cavan",
300             "3536691", "Dingle",
301             "353499", "Belturbet",
302             "353653", "Ennis",
303             "35343668", "Granard",
304             "353628", "Tipperary",
305             "353420", "Dundalk\/Carrickmacross\/Castleblaney",
306             "3534293", "Dundalk",
307             "353504", "Thurles",
308             "35353", "Wexford\/Enniscorthy\/Ferns\/Gorey",
309             "35329", "Kanturk",
310             "353571", "Portlaoise",
311             "353539901", "Wexford",
312             "3531", "Dublin",
313             "353474", "Clones",
314             "353646700", "Killarney",
315             "353402", "Arklow",
316             "3534294", "Dundalk",
317             "353623", "Tipperary",
318             "35326", "Macroom",
319             "353531202", "Enniscorthy",
320             "3534697", "Edenderry",
321             "3534331", "Longford",
322             "3535678", "Kilkenny",
323             "35352", "Clonmel\/Cahir\/Killenaule",
324             "353909902", "Ballinasloe",
325             "3534490", "Tyrellspass",
326             "3534368", "Granard",
327             "3535964", "Baltinglass",
328             "353912", "Gort",
329             "353450", "Naas\/Kildare\/Curragh",
330             "353467", "Navan",
331             "3535791", "Birr",
332             "353658", "Kilrush",
333             "3537198", "Manorhamilton",
334             "3535393", "Ferns",
335             "353579900", "Portlaoise",
336             "353909903", "Ballinasloe",
337             "353456", "Naas",
338             "3536692", "Dingle",
339             "353625", "Tipperary",
340             "3534698", "Edenderry",
341             "35371930", "Sligo",
342             "3534791", "Monaghan\/Clones",
343             "35321", "Cork",
344             "353530", "Wexford",
345             "3534367", "Granard",
346             "3535677", "Kilkenny",
347             "353531203", "Gorey",
348             "3539097", "Portumna",
349             "3535274", "Cahir",
350             "35371931", "Sligo",
351             "3536670", "Tralee\/Dingle\/Killorglin\/Cahersiveen",
352             "353479", "Monaghan",
353             "353469900", "Navan",
354             "353909897", "Athlone",
355             "3539498", "Castlerea",
356             "353477", "Monaghan",
357             "353719900", "Sligo",
358             "3536690", "Killorglin",
359             "353514", "New\ Ross",
360             "353949291", "Castlebar",
361             "353455", "Kildare",
362             "35327", "Bantry",
363             "353626", "Cashel",
364             "353464", "Trim",
365             "3536299", "Tipperary",
366             "35374960", "Letterkenny",
367             "3536477", "Rathmore",
368             "35363", "Rathluirc",
369             "353491", "Cavan\/Cootehill\/Oldcastle\/Belturbet",
370             "35393", "Tuam",
371             "35395", "Clifden",
372             "353428", "Dundalk",
373             "353620", "Tipperary\/Cashel",
374             "353492", "Cootehill",
375             "35351999", "Waterford\/Carrick\-on\-Suir\/New\ Ross\/Kilmacthomas",
376             "3534296", "Carrickmacross",
377             "353218", "Cork\/Kinsale\/Coachford",
378             "353569900", "Kilkenny",
379             "3537191", "Sligo",
380             "353909900", "Athlone",
381             "3534492", "Tyrellspass",
382             "353741", "Letterkenny",
383             "3534295", "Carrickmacross",
384             "3534691", "Navan",
385             "3534120", "Drogheda\/Ardee",
386             "3535786", "Portlaoise",
387             "3535989", "Athy",
388             "353453", "The\ Curragh",
389             "353512", "Kilmacthomas",
390             "3539066", "Roscommon",
391             "353438", "Granard",
392             "353650", "Ennis\/Ennistymon\/Kilrush",
393             "353458", "Naas",
394             "353711", "Sligo",
395             "353423", "Dundalk\/Carrickmacross\/Castleblaney",
396             "3537491", "Letterkenny",
397             "353461", "Navan",
398             "353949287", "Castlebar",
399             "3535261", "Clonmel",
400             "353949286", "Castlebar",
401             "3536697", "Killorglin",
402             "353462", "Kells",
403             "353749214", "Letterkenny",
404             "353749211", "Letterkenny",
405             "353901", "Athlone",
406             "353561", "Kilkenny",
407             "353749900", "Letterkenny",
408             "353619", "Scariff",
409             "353494", "Cavan",
410             "3534330", "Longford",
411             "3535991", "Carlow",
412             "3534491", "Tyrellspass",
413             "3534692", "Kells",
414             "353656", "Ennis",
415             "353425", "Castleblaney",
416             "3536698", "Killorglin",
417             "3539490", "Castlebar",
418             "3536599", "Ennis\/Ennistymon\/Kilrush",
419             "353448", "Tyrellspass",
420             "353749212", "Letterkenny",
421             "3534496", "Castlepollard",
422             "3535391", "Wexford",
423             "353470", "Monaghan\/Clones",
424             "35391", "Galway",
425             "353454", "The\ Curragh",
426             "3534510", "Kildare",
427             "353465", "Enfield",
428             "3534292", "Dundalk",
429             "3534495", "Castlepollard",
430             "3535987", "Athy",
431             "35366", "Tralee",
432             "35357850", "Portlaoise",
433             "353627", "Cashel",
434             "35371932", "Sligo",
435             "35374920", "Letterkenny",
436             "35396", "Ballina",
437             "353629", "Cashel",
438             "353719330", "Sligo",
439             "3535793", "Tullamore",
440             "35361", "Limerick",
441             "353422", "Dundalk",
442             "353498", "Oldcastle",
443             "353719335", "Sligo",
444             "3539493", "Claremorris",
445             "353421", "Dundalk\/Carrickmacross\/Castleblaney",
446             "353539900", "Wexford",
447             "3537495", "Dungloe",
448             "353476", "Monaghan",
449             "353463", "Navan\/Kells\/Trim\/Edenderry\/Enfield",
450             "3536694", "Cahirciveen",
451             "353570", "Portlaoise",
452             "3532140", "Kinsale",
453             "3534799", "Monaghan\/Clones",
454             "3535988", "Athy",
455             "3534333", "Longford",
456             "353659", "Kilrush",
457             "353669100", "Killorglin",
458             "353493", "Belturbet",
459             "35394925", "Castlebar",
460             "3534696", "Enfield",
461             "35368", "Listowel",
462             "3535688", "Freshford",
463             "3536693", "Dingle",
464             "353646701", "Killarney",
465             "353657", "Ennistymon",
466             "353468", "Navan",
467             "3537196", "Carrick\-on\-Shannon",
468             "3535392", "Enniscorthy",
469             "353616", "Scariff",
470             "3534291", "Dundalk",
471             "35364", "Killarney\/Rathmore",
472             "3534695", "Enfield",
473             "3535644", "Castlecomer",
474             "353452", "Kildare",
475             "353432", "Longford",
476             "353451", "Naas\/Kildare\/Curragh",
477             "35374989", "Letterkenny",
478             "35399", "Kilronan",
479             "35369", "Newcastle\ West",
480             "3535291", "Killenaule",
481             "35394", "Castlebar\/Claremorris\/Castlerea\/Ballinrobe",
482             "3532147", "Kinsale",
483             "353719010", "Sligo",
484             "353916", "Gort",
485             "353579901", "Portlaoise",
486             "353531", "Wexford",
487             "35390650", "Athlone",
488             "353495", "Cootehill",
489             "35357", "Portlaoise\/Abbeyleix\/Tullamore\/Birr",
490             "3539096", "Ballinasloe",
491             "353443", "Mullingar\/Castlepollard\/Tyrrellspass",
492             "3536699", "Tralee\/Dingle\/Killorglin\/Cahersiveen",
493             "35398", "Westport",
494             "353424", "Carrickmacross",};
495              
496             sub new {
497 25     25 1 48 my $class = shift;
498 25         40 my $number = shift;
499 25         157 $number =~ s/(^\+353|\D)//g;
500 25         182 my $self = bless({ country_code => '353', number => $number, formatters => $formatters, validators => $validators, areanames => \%areanames}, $class);
501 25 100       130 return $self if ($self->is_valid());
502 1         2 $number =~ s/^(?:0)//;
503 1         10 $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;