File Coverage

blib/lib/Number/Phone/StubCountry/NO.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::NO;
20 5     5   2792 use base qw(Number::Phone::StubCountry);
  5         37  
  5         624  
21              
22 5     5   44 use strict;
  5         22  
  5         124  
23 5     5   34 use warnings;
  5         30  
  5         149  
24 5     5   34 use utf8;
  5         17  
  5         42  
25             our $VERSION = 1.20230307181421;
26              
27             my $formatters = [
28             {
29             'format' => '$1 $2 $3',
30             'leading_digits' => '
31             [489]|
32             59
33             ',
34             'pattern' => '(\\d{3})(\\d{2})(\\d{3})'
35             },
36             {
37             'format' => '$1 $2 $3 $4',
38             'leading_digits' => '[235-7]',
39             'pattern' => '(\\d{2})(\\d{2})(\\d{2})(\\d{2})'
40             }
41             ];
42              
43             my $validators = {
44             'fixed_line' => '
45             (?:
46             2[1-4]|
47             3[1-3578]|
48             5[1-35-7]|
49             6[1-4679]|
50             7[0-8]
51             )\\d{6}
52             ',
53             'geographic' => '
54             (?:
55             2[1-4]|
56             3[1-3578]|
57             5[1-35-7]|
58             6[1-4679]|
59             7[0-8]
60             )\\d{6}
61             ',
62             'mobile' => '
63             (?:
64             4[015-8]|
65             59|
66             9\\d
67             )\\d{6}
68             ',
69             'pager' => '',
70             'personal_number' => '880\\d{5}',
71             'specialrate' => '(
72             810(?:
73             0[0-6]|
74             [2-8]\\d
75             )\\d{3}
76             )|(82[09]\\d{5})|(
77             (?:
78             0[2-9]|
79             81(?:
80             0(?:
81             0[7-9]|
82             1\\d
83             )|
84             5\\d\\d
85             )
86             )\\d{3}
87             )',
88             'toll_free' => '80[01]\\d{5}',
89             'voip' => '85[0-5]\\d{5}'
90             };
91             my %areanames = ();
92             $areanames{en} = {"47244", "Oslo",
93             "47249", "Oslo",
94             "4721995", "Oslo",
95             "4721448", "Oslo",
96             "472413", "Oslo",
97             "4724202", "Oslo",
98             "4724209", "Oslo",
99             "472428", "Oslo",
100             "472422", "Oslo",
101             "472427", "Oslo",
102             "4721997", "Oslo",
103             "4723620", "Oslo",
104             "472411", "Oslo",
105             "47246", "Oslo",
106             "4723626", "Oslo",
107             "47230", "Oslo",
108             "4723624", "Oslo",
109             "4762", "Hedmark",
110             "4751", "Rogaland",
111             "4721411", "Oslo",
112             "4773", "Sør\-Trøndelag",
113             "4721993", "Oslo",
114             "4721410", "Oslo",
115             "472133", "Oslo",
116             "4738", "Vest\-Agder",
117             "4721416", "Oslo",
118             "472366", "Oslo",
119             "4723652", "Oslo",
120             "47217", "Oslo",
121             "4735", "Telemark",
122             "4757", "Sogn\ og\ Fjordane",
123             "4764", "Akershus",
124             "4723621", "Oslo",
125             "472385", "Oslo",
126             "472149", "Oslo",
127             "4723659", "Oslo",
128             "472410", "Oslo",
129             "472424", "Oslo",
130             "47233", "Oslo",
131             "472145", "Oslo",
132             "472195", "Oslo",
133             "472415", "Oslo",
134             "4774", "Nord\-Trøndelag",
135             "47232", "Oslo",
136             "472140", "Oslo",
137             "4737", "Aust\-Agder",
138             "4755", "Hordaland",
139             "4763", "Akershus",
140             "4721415", "Oslo",
141             "472190", "Oslo",
142             "4723658", "Oslo",
143             "47243", "Oslo",
144             "4756", "Hordaland",
145             "4723623", "Oslo",
146             "4721417", "Oslo",
147             "4721991", "Oslo",
148             "472368", "Oslo",
149             "472380", "Oslo",
150             "472367", "Oslo",
151             "4721996", "Oslo",
152             "47239", "Oslo",
153             "472364", "Oslo",
154             "472383", "Oslo",
155             "4721413", "Oslo",
156             "4721990", "Oslo",
157             "47234", "Oslo",
158             "4723627", "Oslo",
159             "472135", "Oslo",
160             "4721994", "Oslo",
161             "472191", "Oslo",
162             "472143", "Oslo",
163             "4721442", "Oslo",
164             "47218", "Oslo",
165             "4724208", "Oslo",
166             "472193", "Oslo",
167             "472426", "Oslo",
168             "4772", "Sør\-Trøndelag",
169             "47215", "Oslo",
170             "47211", "Oslo",
171             "472381", "Oslo",
172             "47240", "Oslo",
173             "472139", "Oslo",
174             "4723625", "Oslo",
175             "4731", "Buskerud",
176             "472425", "Oslo",
177             "4733", "Vestfold",
178             "4721443", "Oslo",
179             "4767", "Akershus",
180             "47231", "Oslo",
181             "472361", "Oslo",
182             "4778", "Finnmark",
183             "47235", "Oslo",
184             "4775", "Nordland",
185             "47216", "Oslo",
186             "472194", "Oslo",
187             "4721419", "Oslo",
188             "4723654", "Oslo",
189             "472429", "Oslo",
190             "4776", "Nordland",
191             "4721412", "Oslo",
192             "472363", "Oslo",
193             "472384", "Oslo",
194             "4723650", "Oslo",
195             "472136", "Oslo",
196             "472387", "Oslo",
197             "472382", "Oslo",
198             "472388", "Oslo",
199             "472360", "Oslo",
200             "4770", "Møre\ og\ Romsdal",
201             "4769", "Østfold",
202             "4723622", "Oslo",
203             "4721445", "Oslo",
204             "4721447", "Oslo",
205             "47247", "Oslo",
206             "472197", "Oslo",
207             "4724204", "Oslo",
208             "472198", "Oslo",
209             "472142", "Oslo",
210             "472147", "Oslo",
211             "4761", "Oppland",
212             "4752", "Rogaland",
213             "472416", "Oslo",
214             "472148", "Oslo",
215             "4724206", "Oslo",
216             "47212", "Oslo",
217             "4724200", "Oslo",
218             "4721446", "Oslo",
219             "472369", "Oslo",
220             "4721440", "Oslo",
221             "4721444", "Oslo",
222             "472196", "Oslo",
223             "4724207", "Oslo",
224             "472423", "Oslo",
225             "4779", "Svalbard\ \&\ Jan\ Mayen",
226             "472146", "Oslo",
227             "472418", "Oslo",
228             "472412", "Oslo",
229             "472417", "Oslo",
230             "4724205", "Oslo",
231             "4721992", "Oslo",
232             "4732", "Buskerud",
233             "4721999", "Oslo",
234             "472421", "Oslo",
235             "47237", "Oslo",
236             "4723653", "Oslo",
237             "472386", "Oslo",
238             "472134", "Oslo",
239             "4771", "Møre\ og\ Romsdal",
240             "4723628", "Oslo",
241             "47245", "Oslo",
242             "4753", "Hordaland",
243             "4722", "Oslo",
244             "472138", "Oslo",
245             "47210", "Oslo",
246             "472137", "Oslo",
247             "472132", "Oslo",
248             "4723657", "Oslo",
249             "4777", "Troms",
250             "47248", "Oslo",
251             "4721418", "Oslo",
252             "4723655", "Oslo",
253             "472414", "Oslo",
254             "4721441", "Oslo",
255             "4724203", "Oslo",
256             "4766", "Akershus",};
257              
258             sub new {
259 89     89 1 198 my $class = shift;
260 89         151 my $number = shift;
261 89         566 $number =~ s/(^\+47|\D)//g;
262 89         507 my $self = bless({ country_code => '47', number => $number, formatters => $formatters, validators => $validators, areanames => \%areanames}, $class);
263 89 100       395 return $self->is_valid() ? $self : undef;
264             }
265             1;