File Coverage

blib/lib/Number/Phone/StubCountry/VC.pm
Criterion Covered Total %
statement 20 21 100.0
branch 2 2 100.0
condition n/a
subroutine 6 7 100.0
pod 2 2 100.0
total 30 32 100.0


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::VC;
20 2     2   1138 use base qw(Number::Phone::StubCountry);
  2         10  
  2         218  
21              
22 2     2   17 use strict;
  2         16  
  2         55  
23 2     2   16 use warnings;
  2         5  
  2         59  
24 2     2   11 use utf8;
  2         8  
  2         14  
25             our $VERSION = 1.20230614174404;
26              
27             my $formatters = [
28             {
29             'format' => '$1-$2',
30             'leading_digits' => '310',
31             'pattern' => '(\\d{3})(\\d{4})'
32             },
33             {
34             'format' => '$1-$2',
35             'intl_format' => 'NA',
36             'leading_digits' => '
37             [24-9]|
38             3(?:
39             [02-9]|
40             1[1-9]
41             )
42             ',
43             'pattern' => '(\\d{3})(\\d{4})'
44             },
45             {
46             'format' => '($1) $2-$3',
47             'intl_format' => '$1-$2-$3',
48             'leading_digits' => '[2-9]',
49             'pattern' => '(\\d{3})(\\d{3})(\\d{4})'
50             }
51             ];
52              
53             my $validators = {
54             'fixed_line' => '
55             784(?:
56             266|
57             3(?:
58             6[6-9]|
59             7\\d|
60             8[0-6]
61             )|
62             4(?:
63             38|
64             5[0-36-8]|
65             8[0-8]
66             )|
67             5(?:
68             55|
69             7[0-2]|
70             93
71             )|
72             638|
73             784
74             )\\d{4}
75             ',
76             'geographic' => '
77             784(?:
78             266|
79             3(?:
80             6[6-9]|
81             7\\d|
82             8[0-6]
83             )|
84             4(?:
85             38|
86             5[0-36-8]|
87             8[0-8]
88             )|
89             5(?:
90             55|
91             7[0-2]|
92             93
93             )|
94             638|
95             784
96             )\\d{4}
97             ',
98             'mobile' => '
99             784(?:
100             4(?:
101             3[0-5]|
102             5[45]|
103             89|
104             9[0-8]
105             )|
106             5(?:
107             2[6-9]|
108             3[0-4]
109             )|
110             720
111             )\\d{4}
112             ',
113             'pager' => '',
114             'personal_number' => '
115             52(?:
116             3(?:
117             [2-46-9][02-9]\\d|
118             5(?:
119             [02-46-9]\\d|
120             5[0-46-9]
121             )
122             )|
123             4(?:
124             [2-478][02-9]\\d|
125             5(?:
126             [034]\\d|
127             2[024-9]|
128             5[0-46-9]
129             )|
130             6(?:
131             0[1-9]|
132             [2-9]\\d
133             )|
134             9(?:
135             [05-9]\\d|
136             2[0-5]|
137             49
138             )
139             )
140             )\\d{4}|
141             52[34][2-9]1[02-9]\\d{4}|
142             5(?:
143             00|
144             2[125-9]|
145             33|
146             44|
147             66|
148             77|
149             88
150             )[2-9]\\d{6}
151             ',
152             'specialrate' => '(900[2-9]\\d{6})',
153             'toll_free' => '
154             8(?:
155             00|
156             33|
157             44|
158             55|
159             66|
160             77|
161             88
162             )[2-9]\\d{6}
163             ',
164             'voip' => '78451[0-2]\\d{4}'
165             };
166 2     2   328 use Number::Phone::NANP::Data;
  2         16  
  2         363  
167             sub areaname {
168             # uncoverable subroutine - no data for most NANP countries
169             # uncoverable statement
170 0     0 1 0 Number::Phone::NANP::Data::_areaname('1'.shift()->{number}); }
171              
172             sub new {
173 13     13 1 34 my $class = shift;
174 13         27 my $number = shift;
175 13         94 $number =~ s/(^\+1|\D)//g;
176 13         90 my $self = bless({ country_code => '1', number => $number, formatters => $formatters, validators => $validators, }, $class);
177 13 100       79 return $self->is_valid() ? $self : undef;
178             }
179             1;