File Coverage

blib/lib/Number/Phone/StubCountry/GE.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::GE;
20 2     2   1384 use base qw(Number::Phone::StubCountry);
  2         12  
  2         289  
21              
22 2     2   19 use strict;
  2         9  
  2         54  
23 2     2   15 use warnings;
  2         9  
  2         63  
24 2     2   14 use utf8;
  2         4  
  2         17  
25             our $VERSION = 1.20230903131447;
26              
27             my $formatters = [
28             {
29             'format' => '$1 $2 $3',
30             'leading_digits' => '70',
31             'national_rule' => '0$1',
32             'pattern' => '(\\d{3})(\\d{3})(\\d{3})'
33             },
34             {
35             'format' => '$1 $2 $3 $4',
36             'leading_digits' => '32',
37             'national_rule' => '0$1',
38             'pattern' => '(\\d{2})(\\d{3})(\\d{2})(\\d{2})'
39             },
40             {
41             'format' => '$1 $2 $3 $4',
42             'leading_digits' => '[57]',
43             'pattern' => '(\\d{3})(\\d{2})(\\d{2})(\\d{2})'
44             },
45             {
46             'format' => '$1 $2 $3 $4',
47             'leading_digits' => '[348]',
48             'national_rule' => '0$1',
49             'pattern' => '(\\d{3})(\\d{2})(\\d{2})(\\d{2})'
50             }
51             ];
52              
53             my $validators = {
54             'fixed_line' => '
55             (?:
56             3(?:
57             [256]\\d|
58             4[124-9]|
59             7[0-4]
60             )|
61             4(?:
62             1\\d|
63             2[2-7]|
64             3[1-79]|
65             4[2-8]|
66             7[239]|
67             9[1-7]
68             )
69             )\\d{6}
70             ',
71             'geographic' => '
72             (?:
73             3(?:
74             [256]\\d|
75             4[124-9]|
76             7[0-4]
77             )|
78             4(?:
79             1\\d|
80             2[2-7]|
81             3[1-79]|
82             4[2-8]|
83             7[239]|
84             9[1-7]
85             )
86             )\\d{6}
87             ',
88             'mobile' => '
89             5(?:
90             (?:
91             (?:
92             0555|
93             1(?:
94             [17]77|
95             555
96             )
97             )[5-9]|
98             757(?:
99             7[7-9]|
100             8[01]
101             )
102             )\\d|
103             22252[0-4]
104             )\\d\\d|
105             (?:
106             5(?:
107             00(?:
108             0\\d|
109             11|
110             22|
111             33|
112             44|
113             5[05]|
114             77|
115             88|
116             99
117             )|
118             1(?:
119             1(?:
120             00|
121             [124]\\d|
122             3[01]
123             )|
124             4\\d\\d
125             )|
126             (?:
127             44|
128             68
129             )\\d\\d|
130             5(?:
131             [0157-9]\\d\\d|
132             200
133             )|
134             7(?:
135             [0147-9]\\d\\d|
136             5(?:
137             00|
138             [57]5
139             )
140             )|
141             8(?:
142             0(?:
143             [01]\\d|
144             2[0-4]
145             )|
146             58[89]|
147             8(?:
148             55|
149             88
150             )
151             )|
152             9(?:
153             090|
154             [1-35-9]\\d\\d
155             )
156             )|
157             790\\d\\d
158             )\\d{4}|
159             5(?:
160             0(?:
161             070|
162             505
163             )|
164             1(?:
165             0[01]0|
166             1(?:
167             07|
168             33|
169             51
170             )
171             )|
172             2(?:
173             0[02]0|
174             2[25]2
175             )|
176             3(?:
177             0[03]0|
178             3[35]3
179             )|
180             (?:
181             40[04]|
182             900
183             )0|
184             5222
185             )[0-4]\\d{3}
186             ',
187             'pager' => '',
188             'personal_number' => '',
189             'specialrate' => '',
190             'toll_free' => '800\\d{6}',
191             'voip' => '70[67]\\d{6}'
192             };
193             my %areanames = ();
194             $areanames{en} = {"995416", "Tsalendjikha",
195             "995413", "Senaki",
196             "995342", "Akhalgori",
197             "995426", "Kobuleti",
198             "995423", "Xulo",
199             "995419", "Choxatauri",
200             "995410", "Mestia",
201             "995418", "Martvili",
202             "995414", "Xobi",
203             "995479", "Chiatura",
204             "995347", "Djava",
205             "995424", "Shuaxevi",
206             "995411", "Samtredia",
207             "995425", "Qeda",
208             "995473", "Oni",
209             "995415", "Zugdidi",
210             "995417", "Chkhorotskhu",
211             "995341", "Rustavi",
212             "99532", "Tbilisi",
213             "995427", "Xelvachauri",
214             "995344", "Tskhinvali",
215             "995472", "Tsageri",
216             "995345", "Stefanstminda\/Kazbegi",
217             "995412", "Abasha",
218             "995346", "Dusheti",
219             "995422", "Batumi",
220             "995348", "Tianeti",
221             "995349", "Akhmeta",
222             "995497", "Tkibuli",
223             "995355", "Signagi",
224             "995433", "Kharagauli",
225             "995436", "Tskaltubo",
226             "995444", "Gudauta",
227             "995351", "Sagaredjo",
228             "995372", "Gardabani",
229             "995445", "Ochamchire",
230             "995439", "Ambrolauri",
231             "995367", "Bordjomi",
232             "995354", "Lagodekhi",
233             "995358", "Bolnisi",
234             "995492", "Zestafoni",
235             "995431", "Kutaisi",
236             "995350", "Telavi",
237             "995434", "Bagdati",
238             "995443", "Gagra",
239             "995446", "Tkvarcheli",
240             "995359", "TetriTskaro",
241             "995448", "Gulripshi",
242             "995435", "Sachkhere",
243             "995353", "Gurdjaani",
244             "995356", "DedoplisTskaro",
245             "995362", "Akhalkalaki",
246             "995493", "Poti",
247             "995496", "Ozurgeti",
248             "995368", "Khashuri",
249             "995437", "Lentekhi",
250             "995360", "Dmanisi",
251             "995442", "Sukhumi",
252             "995369", "Kareli",
253             "995374", "Tigvi",
254             "995371", "Kaspi",
255             "995363", "Tsalka",
256             "995366", "Adigeni",
257             "995352", "Kvareli",
258             "995494", "lanchxuti",
259             "995370", "Gori",
260             "995365", "Akhaltsikhe",
261             "995432", "Vani",
262             "995491", "Terdjola",
263             "995447", "Gali",
264             "995361", "Ninotsminda",
265             "995373", "Mtskheta",
266             "995495", "Khoni",
267             "995357", "Marneuli",
268             "995364", "Aspindza",};
269              
270             sub new {
271 13     13 1 45 my $class = shift;
272 13         24 my $number = shift;
273 13         88 $number =~ s/(^\+995|\D)//g;
274 13         88 my $self = bless({ country_code => '995', number => $number, formatters => $formatters, validators => $validators, areanames => \%areanames}, $class);
275 13 100       70 return $self if ($self->is_valid());
276 1         2 $number =~ s/^(?:0)//;
277 1         13 $self = bless({ country_code => '995', number => $number, formatters => $formatters, validators => $validators, areanames => \%areanames}, $class);
278 1 50       12 return $self->is_valid() ? $self : undef;
279             }
280             1;