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