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