phony 2.16.10 → 2.16.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/phony/countries/malaysia.rb +15 -0
- data/spec/functional/plausibility_spec.rb +2 -0
- data/spec/lib/phony/countries_spec.rb +1 -1
- data/spec/lib/phony_spec.rb +63 -67
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 12a40a0fe9dcbc578b3f99963bef86135596894d1145cfe3582ddb088ca918f1
|
4
|
+
data.tar.gz: 58959c59c7641ed3ab70f0586bb64100bd599d2e2e0dce4c4bf46522d0231ba8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cef3550f87ea1c9b33e80358389b435c52a765445035d9f61a9c7ceee3c44e921a14505e34a88eb13fcc61b9378a104179512cf1024252bcc0510fce778a843c
|
7
|
+
data.tar.gz: 01a79012341a7758151d66b80877cc2dc865a1bafb605b897d2667a8dadbf3ed44fe7e00d04ef437b86abbd42a63231490b5e4d346592c8d7e4cc735ab544d60
|
@@ -10,6 +10,20 @@ ndcs = [
|
|
10
10
|
'7', # Johor (except Muar)
|
11
11
|
'9', # Kelantan, Pahang (except Cameron Highlands & Genting Highlands) & Terengganu
|
12
12
|
]
|
13
|
+
|
14
|
+
ndcs_two_digits = [
|
15
|
+
'80', # Domestic access code from East Malaysia to Brunei
|
16
|
+
'81', # Reserved number for future use
|
17
|
+
'82', # Sarawak – Kuching, Samarahan and Serian
|
18
|
+
'83', # Sarawak – Sri Aman and Betong
|
19
|
+
'84', # Sarawak – Sibu, Sarikei, Mukah and Kapit
|
20
|
+
'85', # Sarawak – Miri, Limbang and Lawas
|
21
|
+
'86', # Sarawak – Bintulu and Belaga
|
22
|
+
'87', # Labuan Interior Division, Sabah
|
23
|
+
'88', # Sabah – Kota Kinabalu and Kudat
|
24
|
+
'89', # Sabah – Lahad Datu, Sandakan and Tawau
|
25
|
+
]
|
26
|
+
|
13
27
|
mobile = %w{ 10 11 12 13 14 153 154 156 158 16 17 18 19 }
|
14
28
|
# service = %w{ 100 101 102 103 104 108 991 994 995 999 } # Emergeny and Service numbers, only 3 digits long
|
15
29
|
freephone = %w{ 300 700 800 }
|
@@ -23,6 +37,7 @@ Phony.define do
|
|
23
37
|
one_of(freephone) >> split(2,4) | # Freephone, Tollfree, Forwarding
|
24
38
|
# one_of(service) >> none | # Service
|
25
39
|
one_of(mobile) >> split(3,4..5) | # Mobile
|
40
|
+
one_of(ndcs_two_digits) >> split(6) | # 2-digit NDCs
|
26
41
|
one_of(ndcs) >> split(7) | # 1-digit NDCs
|
27
42
|
one_of(ndcs_eight) >> split(8) | # 1-digit NDCs
|
28
43
|
fixed(2) >> split(8) # 2-digit NDCs (Also, fallback)
|
@@ -589,6 +589,8 @@ describe 'plausibility' do
|
|
589
589
|
|
590
590
|
it 'is correct for Malaysia' do
|
591
591
|
Phony.plausible?('+60 5 123 1234').should be_truthy # Non Selangor Landline
|
592
|
+
Phony.plausible?('+60 3 1234 1234').should be_truthy # Selangor Landline
|
593
|
+
Phony.plausible?('+60 88 123 123').should be_truthy # Landline Sabah – Kota Kinabalu and Kudat
|
592
594
|
end
|
593
595
|
|
594
596
|
it 'is correct for Japan' do
|
@@ -641,7 +641,7 @@ describe 'country descriptions' do
|
|
641
641
|
it_splits '79991234567', ['7', '999', '123', '45', '67'] # Russia 3-digit
|
642
642
|
it_splits '7840121212', ['7', '840', '12', '1212'] # Abhasia
|
643
643
|
it_splits '7799121212', ['7', '799', '12', '1212'] # Kazachstan
|
644
|
-
it_splits '7995344121212', ['7','
|
644
|
+
it_splits '7995344121212', ['7', '995', '344','12','1212'] # South Osetia
|
645
645
|
it_splits '7209175276', ['7', '209', '17', '5276'] # Fantasy number
|
646
646
|
end
|
647
647
|
|
data/spec/lib/phony_spec.rb
CHANGED
@@ -1,74 +1,70 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe Phony do
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
described_class.normalize('000')
|
9
|
-
end.to raise_error(described_class::NormalizationError)
|
10
|
-
end
|
11
|
-
it 'is correctly raised on normalize' do
|
12
|
-
expect do
|
13
|
-
described_class.normalize('000')
|
14
|
-
end.to raise_error(%Q{Phony could not normalize the given number. Is it a phone number?})
|
15
|
-
end
|
16
|
-
it 'is correctly raised on normalize!' do
|
17
|
-
expect do
|
18
|
-
described_class.normalize!('000')
|
19
|
-
end.to raise_error(described_class::NormalizationError)
|
20
|
-
end
|
21
|
-
it 'is correctly raised on normalize!' do
|
22
|
-
expect do
|
23
|
-
described_class.normalize!('000')
|
24
|
-
end.to raise_error(%Q{Phony could not normalize the given number. Is it a phone number?})
|
25
|
-
end
|
3
|
+
describe Phony::NormalizationError do
|
4
|
+
it 'is correctly raised on normalize' do
|
5
|
+
expect do
|
6
|
+
Phony.normalize('000')
|
7
|
+
end.to raise_error(Phony::NormalizationError)
|
26
8
|
end
|
9
|
+
it 'is correctly raised on normalize' do
|
10
|
+
expect do
|
11
|
+
Phony.normalize('000')
|
12
|
+
end.to raise_error(%Q{Phony could not normalize the given number. Is it a phone number?})
|
13
|
+
end
|
14
|
+
it 'is correctly raised on normalize!' do
|
15
|
+
expect do
|
16
|
+
Phony.normalize!('000')
|
17
|
+
end.to raise_error(Phony::NormalizationError)
|
18
|
+
end
|
19
|
+
it 'is correctly raised on normalize!' do
|
20
|
+
expect do
|
21
|
+
Phony.normalize!('000')
|
22
|
+
end.to raise_error(%Q{Phony could not normalize the given number. Is it a phone number?})
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
describe Phony::SplittingError do
|
27
|
+
it 'is correctly raised on split' do
|
28
|
+
expect do
|
29
|
+
Phony.split('000')
|
30
|
+
end.to raise_error(Phony::SplittingError)
|
31
|
+
end
|
32
|
+
it 'is correctly raised on split' do
|
33
|
+
expect do
|
34
|
+
Phony.split('000')
|
35
|
+
end.to raise_error(%Q{Phony could not split the given number. Is "000" a phone number?})
|
36
|
+
end
|
37
|
+
it 'is correctly raised on split!' do
|
38
|
+
expect do
|
39
|
+
Phony.split!('000')
|
40
|
+
end.to raise_error(Phony::SplittingError)
|
41
|
+
end
|
42
|
+
it 'is correctly raised on split!' do
|
43
|
+
expect do
|
44
|
+
Phony.split!('000')
|
45
|
+
end.to raise_error(%Q{Phony could not split the given number. Is it a phone number?})
|
46
|
+
end
|
47
|
+
end
|
27
48
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
end
|
44
|
-
it 'is correctly raised on split!' do
|
45
|
-
expect do
|
46
|
-
described_class.split!('000')
|
47
|
-
end.to raise_error(%Q{Phony could not split the given number. Is it a phone number?})
|
48
|
-
end
|
49
|
+
describe Phony::FormattingError do
|
50
|
+
it 'is correctly raised on format' do
|
51
|
+
expect do
|
52
|
+
Phony.format('000')
|
53
|
+
end.to raise_error(Phony::FormattingError)
|
54
|
+
end
|
55
|
+
it 'is correctly raised on format' do
|
56
|
+
expect do
|
57
|
+
Phony.format('000')
|
58
|
+
end.to raise_error(%Q{Phony could not format the given number. Is it a phone number?})
|
59
|
+
end
|
60
|
+
it 'is correctly raised on format!' do
|
61
|
+
expect do
|
62
|
+
Phony.format!('000')
|
63
|
+
end.to raise_error(Phony::FormattingError)
|
49
64
|
end
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
described_class.format('000')
|
55
|
-
end.to raise_error(described_class::FormattingError)
|
56
|
-
end
|
57
|
-
it 'is correctly raised on format' do
|
58
|
-
expect do
|
59
|
-
described_class.format('000')
|
60
|
-
end.to raise_error(%Q{Phony could not format the given number. Is it a phone number?})
|
61
|
-
end
|
62
|
-
it 'is correctly raised on format!' do
|
63
|
-
expect do
|
64
|
-
described_class.format!('000')
|
65
|
-
end.to raise_error(described_class::FormattingError)
|
66
|
-
end
|
67
|
-
it 'is correctly raised on format!' do
|
68
|
-
expect do
|
69
|
-
described_class.format!('000')
|
70
|
-
end.to raise_error(%Q{Phony could not format the given number. Is it a phone number?})
|
71
|
-
end
|
65
|
+
it 'is correctly raised on format!' do
|
66
|
+
expect do
|
67
|
+
Phony.format!('000')
|
68
|
+
end.to raise_error(%Q{Phony could not format the given number. Is it a phone number?})
|
72
69
|
end
|
73
|
-
|
74
70
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: phony
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.16.
|
4
|
+
version: 2.16.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Florian Hanke
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-02-
|
11
|
+
date: 2019-02-15 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: 'Fast international phone number (E164 standard) normalizing, splitting
|
14
14
|
and formatting. Lots of formatting options: International (+.., 00..), national
|