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