File Coverage

blib/lib/Number/Phone/StubCountry/AL.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::AL;
20 2     2   1138 use base qw(Number::Phone::StubCountry);
  2         8  
  2         212  
21              
22 2     2   14 use strict;
  2         4  
  2         42  
23 2     2   11 use warnings;
  2         4  
  2         49  
24 2     2   12 use utf8;
  2         4  
  2         10  
25             our $VERSION = 1.20230903131440;
26              
27             my $formatters = [
28             {
29             'format' => '$1 $2',
30             'leading_digits' => '
31             80|
32             9
33             ',
34             'national_rule' => '0$1',
35             'pattern' => '(\\d{3})(\\d{3,4})'
36             },
37             {
38             'format' => '$1 $2 $3',
39             'leading_digits' => '4[2-6]',
40             'national_rule' => '0$1',
41             'pattern' => '(\\d)(\\d{3})(\\d{4})'
42             },
43             {
44             'format' => '$1 $2 $3',
45             'leading_digits' => '
46             [2358][2-5]|
47             4
48             ',
49             'national_rule' => '0$1',
50             'pattern' => '(\\d{2})(\\d{3})(\\d{3})'
51             },
52             {
53             'format' => '$1 $2',
54             'leading_digits' => '[23578]',
55             'national_rule' => '0$1',
56             'pattern' => '(\\d{3})(\\d{5})'
57             },
58             {
59             'format' => '$1 $2 $3',
60             'leading_digits' => '6',
61             'national_rule' => '0$1',
62             'pattern' => '(\\d{2})(\\d{3})(\\d{4})'
63             }
64             ];
65              
66             my $validators = {
67             'fixed_line' => '
68             4505[0-2]\\d{3}|
69             (?:
70             [2358][16-9]\\d[2-9]|
71             4410
72             )\\d{4}|
73             (?:
74             [2358][2-5][2-9]|
75             4(?:
76             [2-57-9][2-9]|
77             6\\d
78             )
79             )\\d{5}
80             ',
81             'geographic' => '
82             4505[0-2]\\d{3}|
83             (?:
84             [2358][16-9]\\d[2-9]|
85             4410
86             )\\d{4}|
87             (?:
88             [2358][2-5][2-9]|
89             4(?:
90             [2-57-9][2-9]|
91             6\\d
92             )
93             )\\d{5}
94             ',
95             'mobile' => '
96             6(?:
97             [78][2-9]|
98             9\\d
99             )\\d{6}
100             ',
101             'pager' => '',
102             'personal_number' => '700[2-9]\\d{4}',
103             'specialrate' => '(808[1-9]\\d\\d)|(900[1-9]\\d\\d)',
104             'toll_free' => '800\\d{4}',
105             'voip' => ''
106             };
107             my %areanames = ();
108             $areanames{en} = {"355872", "Qendër\ Ersekë\/Mollas\/Çlirim\,\ Kolonjë",
109             "355361", "Ura\ Vajgurore\,\ Berat",
110             "35545", "Tirana",
111             "355562", "Milot\/Fushe\-Kuqe\,\ Kurbin",
112             "355378", "Aranitas\/Ngracan\/Selitë\/Fratar\/Kutë\,\ Mallakastër",
113             "355363", "Otllak\/Lumas\,\ Berat",
114             "355287", "Klos\/Suç\/Lis\,\ Mat",
115             "355296", "Fushë\-Bulqizë\/Shupenzë\/Zerqan\,\ Bulqizë",
116             "355375", "Golem\/Grabian\/Remas\,\ Lushnjë",
117             "355281", "Shëngjin\/Balldre\,\ Lezhë",
118             "355874", "Hoçisht\/Miras\,\ Devoll",
119             "35554", "Elbasan",
120             "355866", "Libonik\/Vreshtaz\,\ Korçë",
121             "35547", "Kamëz\/Vorë\/Paskuqan\/Zall\-Herr\/Burxullë\/Prezë\,\ Tiranë",
122             "355813", "Përmet",
123             "355564", "Nikël\/Bubq\,\ Kruje",
124             "355576", "Katund\ i\ Ri\/Ishem\,\ Durrës",
125             "355367", "Perondi\/Kozarë\,\ Kuçovë",
126             "355283", "Kolsh\/Zejmen\/Shënkoll\,\ Lezhë",
127             "35522", "Shkodër",
128             "355811", "Bilisht\,\ Devoll",
129             "355381", "Patos\,\ Fier",
130             "355582", "Belsh\,\ Elbasan",
131             "355893", "Ksamil\,\ Sarandë",
132             "355595", "Qukës\/Rajcë\,\ Librazhd",
133             "35555", "Kavajë",
134             "355267", "Dajç\/Velipojë\,\ Shkodër",
135             "355383", "Qendër\,\ Fier",
136             "35532", "Berat",
137             "355891", "Konispol\/Xare\/Markat\,\ Sarandë",
138             "355261", "Vau\-Dejës",
139             "355886", "Qendër\/Kurvelesh\/Lopëz\,\ Tepelenë",
140             "355584", "Labinot\-Fushë\/Labinot\-Mal\/Funarë\/Gracen\,\ Elbasan",
141             "35544", "Tirana",
142             "355270", "Kolsh\/Surroj\/Arren\/Malzi\,\ Kukës",
143             "355278", "Bicaj\/Topojan\/Shishtavec\,\ Kukës",
144             "355589", "Karinë\/Gjocaj\/Shezë\,\ Peqin",
145             "355263", "Pult\/Shalë\/Shosh\/Temal\/Shllak\,\ Shkodër",
146             "355387", "Cakran\/Frakull\,\ Fier",
147             "355216", "Rrëshen",
148             "355396", "Shushicë\/Armen\,\ Vlorë",
149             "355275", "Bujan\/Fierzë\/Bytyc\/Lekbiba\,\ Tropojë",
150             "355376", "Dushk\/Tërbuf\,\ Lushnjë",
151             "355295", "Sllovë\/Zall\-Dardhë\/Zall\-Reç\/Kala\ e\ Dodes\,\ Dibër",
152             "355364", "Vërtop\/Terpan\,\ Berat",
153             "355282", "Kallmet\/Blinisht\/Dajç\/Ungrej\,\ Lezhë",
154             "35534", "Fier",
155             "355877", "Dishnicë\/Sukë\/Ballaban\,\ Përmet",
156             "355812", "Ersekë\,\ Kolonjë",
157             "355369", "Qendër\/Vendreshë\,\ Skrapar",
158             "355578", "Synej\/Golem\,\ Kavajë",
159             "355570", "Gosë\/Lekaj\/Sinaballaj\,\ Kavajë",
160             "355362", "Velabisht\/Roshnik\,\ Berat",
161             "355871", "Leskovik\/Barmash\/Novoselë\,\ Kolonjë",
162             "355284", "Rubik\,\ Mirditë",
163             "355868", "Buçimas\/Udenisht\,\ Pogradec",
164             "35583", "Pogradec",
165             "355860", "Trebinjë\/Proptisht\/Velçan\,\ Pogradec",
166             "355561", "Mamurras\,\ Kurbin",
167             "355575", "Xhafzotaj\/Maminas\,\ Durrës",
168             "355873", "Qendër\ Bilisht\/Progër\,\ Devoll",
169             "355814", "Tepelenë",
170             "355865", "Gorë\/Pirg\/Moglicë\,\ Korçë",
171             "35542", "Tirana",
172             "355563", "Fushë\-Krujë",
173             "355289", "Ulëz\/Rukaj\/Derjan\/Macukull\,\ Mat",
174             "355262", "Rrethinat\/Ana\-Malit\,\ Shkodër",
175             "355384", "Mbrostar\ Ura\/LIibofshë\,\ Fier",
176             "355596", "Pishaj\/Sult\/Tunjë\/Kushovë\/Skënderbegas\,\ Gramsh",
177             "355587", "Gostime\/Klos\/Mollas\,\ Elbasan",
178             "355894", "Livadhja\/Dhivër\,\ Sarandë",
179             "35549", "Petrelë\/Baldushk\/Bërzhitë\/Krrabë\/Shengjergj\/Zall\-Bastar\,\ Tiranë",
180             "355389", "Dermenas\/Topojë\,\ Fier",
181             "35535", "Lushnje",
182             "355276", "Fajza\/Golaj\/Gjinaj\,\ Has",
183             "355395", "Novoselë\,\ Vlorë",
184             "355264", "Postribë\/Gur\ i\ Zi",
185             "355215", "Lezhë",
186             "355382", "Roskovec\,\ Fier",
187             "35524", "Kukës",
188             "355581", "Cërrik\,\ Elbasan",
189             "355398", "Sevaster\/Brataj\/Hore\-Vranisht\,\ Vlorë",
190             "355218", "Peshkopi",
191             "35552", "Durrës",
192             "355885", "Memaliaj\,\ Tepelenë",
193             "355583", "Bradashesh\/Shirgjan\,\ Elbasan",
194             "355892", "Aliko\/Lukovë\,\ Sarandë",
195             "355269", "Kastrat\/Shkrel\/Kelmend\,\ Malësi\ e\ Madhe",
196             "355373", "Krutje\/Bubullimë\/Allkaj\,\ Lushnjë",
197             "355294", "Arras\/Fushë\-Çidhën\/Lurë\,\ Dibër",
198             "355365", "Sinjë\/Cukalat\,\ Berat",
199             "355371", "Divjakë\,\ Lushnjë",
200             "355862", "Qendër\,\ Korçë",
201             "35533", "Vlorë",
202             "355368", "Poliçan\/Bogovë\,\ Skrapar",
203             "355360", "Leshnje\/Potom\/Çepan\/Gjerbës\/Zhepë\,\ Skrapar",
204             "355572", "Manëz\,\ Durrës",
205             "355377", "Qendër\/Greshicë\/Hekal\,\ Mallakastër",
206             "355511", "Kruje",
207             "355579", "Luz\ i\ Vogël\/Kryevidh\/Helmës\,\ Kavajë",
208             "355292", "Maqellarë\/Melan\,\ Dibër",
209             "355312", "Çorovodë\,\ Skrapar",
210             "355285", "Kthjellë\/Selitë\,\ Mirditë",
211             "355869", "Çëravë\/Dardhas\,\ Pogradec",
212             "35546", "Tirana",
213             "355876", "Qendër\/Frashër\/Petran\/Çarshovë\,\ Përmet",
214             "355864", "Voskop\/Voskopojë\/Vithkuq\/Lekas\,\ Korçë",
215             "355815", "Delvinë",
216             "355513", "Gramsh",
217             "355288", "Baz\/Komsi\/Gurrë\/Xibër\,\ Mat",
218             "35584", "Gjirokastër",
219             "355574", "Rashbull\/Gjepalaj\,\ Durrës",
220             "355591", "Përrenjas\,\ Librazhd",
221             "355277", "Shtiqen\/Tërthore\/Zapod\,\ Kukës",
222             "355392", "Selenicë\,\ Vlorë",
223             "355212", "Pukë",
224             "355385", "Portëz\/Zharëz\,\ Fier",
225             "35585", "Sarandë",
226             "355882", "Cepo\/Picar\/Lazarat\/Atigon\,\ Gjirokastër",
227             "355895", "Finiq\/Mesopotam\/Vergo\,\ Delvinë",
228             "355593", "Lunik\/Orenjë\/Stebleve\,\ Librazhd",
229             "355388", "Levan\,\ Fier",
230             "355273", "Iballë\/Fierzë\/Blerim\/Qafë\-Mali\,\ Pukë",
231             "355394", "Qendër\,\ Vlorë",
232             "355265", "Vig\-Mnelë\/Hajmel\,\ Shkodër",
233             "355214", "Krumë",
234             "35548", "Kashar\/Vaqar\/Ndroq\/Pezë\/Farkë\/Dajt\,\ Tiranë",
235             "355219", "Bulqizë",
236             "355884", "Dropull\ i\ Poshtëm\/Dropull\ i\ Sipërm\,\ Gjirokastër",
237             "355597", "Kodovjat\/Poroçan\/Kukur\/Lenie\,\ Gramsh",
238             "355271", "Fushë\-Arrëz\/Rrapë\,\ Pukë",
239             "355586", "Gjergjan\/Papër\/Shalës\,\ Elbasan",
240             "355268", "Qendër\/Gruemirë\,\ Malësi\ e\ Madhe",
241             "355867", "Pojan\/Liqenas\,\ Korçë",
242             "355512", "Peqin",
243             "355311", "Kuçovë",
244             "355577", "Rrogozhinë\,\ Kavajë",
245             "355291", "Tomin\/Luzni\,\ Dibër",
246             "355374", "Gradishtë\/Kolonjë\,\ Lushnjë",
247             "355366", "Poshnjë\/Kutalli\,\ Berat",
248             "355313", "Ballsh\,\ Mallakastër",
249             "355293", "Kastriot\/Muhur\/Selishtë\,\ Dibër",
250             "355514", "Librazhd",
251             "355565", "Koder\-Thumane\/Cudhi\,\ Kruje",
252             "355863", "Drenovë\/Mollaj\,\ Korçë",
253             "355573", "Sukth\,\ Durrës",
254             "355875", "Këlcyrë\,\ Përmet",
255             "355372", "Karbunarë\/Fier\-Shegan\/Hysgjokaj\/Ballagat\,\ Lushnjë",
256             "355861", "Maliq\,\ Korçë",
257             "35553", "Laç\,\ Kurbin",
258             "355286", "Kaçinar\/Orosh\/Fan\,\ Mirditë",
259             "355571", "Shijak\,\ Durrës",
260             "355297", "Gjorice\/Ostren\/Trebisht\/Martanesh\,\ Bulqizë",
261             "355887", "Qesarat\/Krahës\/Luftinje\/Buz\,\ Tepelenë",
262             "355594", "Hotolisht\/Polis\/Stravaj\,\ Librazhd",
263             "355272", "Qerret\/Qelëz\/Gjegjan\,\ Pukë",
264             "355386", "Kuman\/Kurjan\/Strum\/Ruzhdie\,\ Fier",
265             "355217", "Burrel",
266             "355397", "Vllahinë\/Kote\,\ Vlorë",
267             "355585", "Shushicë\/Tregan\/Gjinar\/Zavalinë\,\ Elbasan",
268             "355883", "Lunxheri\/Odrie\/Zagorie\/Pogon\,\ Gjirokastër",
269             "355592", "Qendër\,\ Librazhd",
270             "355279", "Gryk\-Çajë\/Ujmisht\/Bushtrice\/Kalis\,\ Kukës",
271             "35582", "Korçë",
272             "355211", "Koplik",
273             "355391", "Orikum\,\ Vlorë",
274             "355274", "Tropojë\/Llugaj\/Margegaj\,\ Tropojë",
275             "355580", "Përparim\/Pajovë\,\ Peqin",
276             "355881", "Libohovë\/Qendër\,\ Gjirokastër",
277             "355266", "Bushat\/Bërdicë\,\ Shkodër",
278             "355588", "Rrasë\/Fierzë\/Kajan\/Grekan\,\ Elbasan",
279             "355213", "Bajram\ Curri",
280             "355393", "Himarë\,\ Vlorë",
281             "35543", "Tirana",};
282              
283             sub new {
284 19     19 1 38 my $class = shift;
285 19         28 my $number = shift;
286 19         111 $number =~ s/(^\+355|\D)//g;
287 19         100 my $self = bless({ country_code => '355', number => $number, formatters => $formatters, validators => $validators, areanames => \%areanames}, $class);
288 19 100       81 return $self if ($self->is_valid());
289 1         11 $number =~ s/^(?:0)//;
290 1         15 $self = bless({ country_code => '355', number => $number, formatters => $formatters, validators => $validators, areanames => \%areanames}, $class);
291 1 50       5 return $self->is_valid() ? $self : undef;
292             }
293             1;