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