File Coverage

blib/lib/Number/Phone/StubCountry/MO.pm
Criterion Covered Total %
statement 17 17 100.0
branch 2 2 100.0
condition n/a
subroutine 5 5 100.0
pod 1 1 100.0
total 25 25 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::MO;
20 2     2   1240 use base qw(Number::Phone::StubCountry);
  2         7  
  2         252  
21              
22 2     2   15 use strict;
  2         6  
  2         54  
23 2     2   12 use warnings;
  2         18  
  2         68  
24 2     2   11 use utf8;
  2         4  
  2         15  
25             our $VERSION = 1.20230614174404;
26              
27             my $formatters = [
28             {
29             'format' => '$1 $2',
30             'pattern' => '(\\d{4})(\\d{3})'
31             },
32             {
33             'format' => '$1 $2',
34             'leading_digits' => '[268]',
35             'pattern' => '(\\d{4})(\\d{4})'
36             }
37             ];
38              
39             my $validators = {
40             'fixed_line' => '
41             (?:
42             28[2-9]|
43             8(?:
44             11|
45             [2-57-9]\\d
46             )
47             )\\d{5}
48             ',
49             'geographic' => '
50             (?:
51             28[2-9]|
52             8(?:
53             11|
54             [2-57-9]\\d
55             )
56             )\\d{5}
57             ',
58             'mobile' => '
59             6800[0-79]\\d{3}|
60             6(?:
61             [235]\\d\\d|
62             6(?:
63             0[0-5]|
64             [1-9]\\d
65             )|
66             8(?:
67             0[1-9]|
68             [14-8]\\d|
69             2[5-9]|
70             [39][0-4]
71             )
72             )\\d{4}
73             ',
74             'pager' => '',
75             'personal_number' => '',
76             'specialrate' => '',
77             'toll_free' => '0800\\d{3}',
78             'voip' => ''
79             };
80              
81             sub new {
82 10     10 1 23 my $class = shift;
83 10         21 my $number = shift;
84 10         68 $number =~ s/(^\+853|\D)//g;
85 10         51 my $self = bless({ country_code => '853', number => $number, formatters => $formatters, validators => $validators, }, $class);
86 10 100       53 return $self->is_valid() ? $self : undef;
87             }
88             1;