File Coverage

blib/lib/Number/Phone/StubCountry/LI.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::LI;
20 2     2   1239 use base qw(Number::Phone::StubCountry);
  2         7  
  2         317  
21              
22 2     2   21 use strict;
  2         8  
  2         57  
23 2     2   12 use warnings;
  2         7  
  2         55  
24 2     2   15 use utf8;
  2         6  
  2         14  
25             our $VERSION = 1.20230903131448;
26              
27             my $formatters = [
28             {
29             'format' => '$1 $2 $3',
30             'leading_digits' => '
31             [2379]|
32             8(?:
33             0(?:
34             02|
35             9
36             )|
37             7
38             )
39             ',
40             'pattern' => '(\\d{3})(\\d{2})(\\d{2})'
41             },
42             {
43             'format' => '$1 $2 $3',
44             'leading_digits' => '8',
45             'pattern' => '(\\d{3})(\\d{3})(\\d{3})'
46             },
47             {
48             'format' => '$1 $2 $3',
49             'leading_digits' => '69',
50             'pattern' => '(\\d{2})(\\d{3})(\\d{4})'
51             },
52             {
53             'format' => '$1 $2 $3',
54             'leading_digits' => '6',
55             'pattern' => '(\\d{3})(\\d{3})(\\d{3})'
56             }
57             ];
58              
59             my $validators = {
60             'fixed_line' => '
61             (?:
62             2(?:
63             01|
64             1[27]|
65             2[02]|
66             3\\d|
67             6[02-578]|
68             96
69             )|
70             3(?:
71             [24]0|
72             33|
73             7[0135-7]|
74             8[048]|
75             9[0269]
76             )
77             )\\d{4}
78             ',
79             'geographic' => '
80             (?:
81             2(?:
82             01|
83             1[27]|
84             2[02]|
85             3\\d|
86             6[02-578]|
87             96
88             )|
89             3(?:
90             [24]0|
91             33|
92             7[0135-7]|
93             8[048]|
94             9[0269]
95             )
96             )\\d{4}
97             ',
98             'mobile' => '
99             (?:
100             6(?:
101             (?:
102             4[5-9]|
103             5[0-4]
104             )\\d|
105             6(?:
106             [0245]\\d|
107             [17]0|
108             3[7-9]
109             )
110             )\\d|
111             7(?:
112             [37-9]\\d|
113             42|
114             56
115             )
116             )\\d{4}
117             ',
118             'pager' => '',
119             'personal_number' => '',
120             'specialrate' => '(
121             90(?:
122             02[258]|
123             1(?:
124             23|
125             3[14]
126             )|
127             66[136]
128             )\\d\\d
129             )|(
130             870(?:
131             28|
132             87
133             )\\d\\d
134             )',
135             'toll_free' => '
136             8002[28]\\d\\d|
137             80(?:
138             05\\d|
139             9
140             )\\d{4}
141             ',
142             'voip' => ''
143             };
144              
145             sub new {
146 16     16 1 38 my $class = shift;
147 16         37 my $number = shift;
148 16         101 $number =~ s/(^\+423|\D)//g;
149 16         91 my $self = bless({ country_code => '423', number => $number, formatters => $formatters, validators => $validators, }, $class);
150 16 100       87 return $self if ($self->is_valid());
151 1         2 $number =~ s/^(?:(1001)|0)//;
152 1         12 $self = bless({ country_code => '423', number => $number, formatters => $formatters, validators => $validators, }, $class);
153 1 50       8 return $self->is_valid() ? $self : undef;
154             }
155             1;