File Coverage

blib/lib/Number/Phone/StubCountry/FO.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::FO;
20 3     3   1687 use base qw(Number::Phone::StubCountry);
  3         23  
  3         352  
21              
22 3     3   35 use strict;
  3         8  
  3         71  
23 3     3   21 use warnings;
  3         12  
  3         99  
24 3     3   21 use utf8;
  3         7  
  3         22  
25             our $VERSION = 1.20230307181420;
26              
27             my $formatters = [
28             {
29             'format' => '$1',
30             'leading_digits' => '[2-9]',
31             'pattern' => '(\\d{6})'
32             }
33             ];
34              
35             my $validators = {
36             'fixed_line' => '
37             (?:
38             20|
39             [34]\\d|
40             8[19]
41             )\\d{4}
42             ',
43             'geographic' => '
44             (?:
45             20|
46             [34]\\d|
47             8[19]
48             )\\d{4}
49             ',
50             'mobile' => '
51             (?:
52             [27][1-9]|
53             5\\d|
54             9[16]
55             )\\d{4}
56             ',
57             'pager' => '',
58             'personal_number' => '',
59             'specialrate' => '(
60             90(?:
61             [13-5][15-7]|
62             2[125-7]|
63             9\\d
64             )\\d\\d
65             )',
66             'toll_free' => '80[257-9]\\d{3}',
67             'voip' => '
68             (?:
69             6[0-36]|
70             88
71             )\\d{4}
72             '
73             };
74              
75             sub new {
76 18     18 1 53 my $class = shift;
77 18         40 my $number = shift;
78 18         112 $number =~ s/(^\+298|\D)//g;
79 18         106 my $self = bless({ country_code => '298', number => $number, formatters => $formatters, validators => $validators, }, $class);
80 18 100       81 return $self if ($self->is_valid());
81 1         3 $number =~ s/^(?:(10(?:01|[12]0|88)))//;
82 1         15 $self = bless({ country_code => '298', number => $number, formatters => $formatters, validators => $validators, }, $class);
83 1 50       7 return $self->is_valid() ? $self : undef;
84             }
85             1;