phonelib 0.6.19 → 0.6.20
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/data/extended_data.dat +0 -0
- data/data/phone_data.dat +0 -0
- data/lib/phonelib/core.rb +2 -0
- data/lib/phonelib/data_importer.rb +3 -0
- data/lib/phonelib/data_importer_helper.rb +0 -11
- data/lib/phonelib/phone_analyzer.rb +13 -1
- data/lib/phonelib/version.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e5f646f52d422a81f3c5661833bc8fbcd16d58d0
|
4
|
+
data.tar.gz: c95290c503448d13bcbc8155441cd3eaf79db473
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2081bdbc6d307b6443809a38f3a2bf5e928c7049095a113fe53583d9677f52c38a9b18d8df8b2818dec095abf84dc9d942fb433dd8c68457c745586a3dd304c7
|
7
|
+
data.tar.gz: 22d1502ae3859b9ac61a95c5477c65423454dd312cb2bf0bc92270ea67769ca32bd8d64645ced86b9115e2ca1f9cc02de0b997b7c9d044d806f598fabfbd7f2e
|
data/data/extended_data.dat
CHANGED
Binary file
|
data/data/phone_data.dat
CHANGED
Binary file
|
data/lib/phonelib/core.rb
CHANGED
@@ -199,6 +199,8 @@ module Phonelib
|
|
199
199
|
NATIONAL_PREFIX = :national_prefix
|
200
200
|
# @private National prefix for parsing key
|
201
201
|
NATIONAL_PREFIX_FOR_PARSING = :national_prefix_for_parsing
|
202
|
+
# @private National prefix transform rule key
|
203
|
+
NATIONAL_PREFIX_TRANSFORM_RULE = :national_prefix_transform_rule
|
202
204
|
# @private National prefix rule key
|
203
205
|
NATIONAL_PREFIX_RULE = :national_prefix_formatting_rule
|
204
206
|
# @private Country code key
|
@@ -78,6 +78,9 @@ module Phonelib
|
|
78
78
|
country = hash_from_xml(el, :attributes)
|
79
79
|
country.merge! types_and_formats(el.children)
|
80
80
|
country = add_double_country_flag country
|
81
|
+
if country[Core::NATIONAL_PREFIX_TRANSFORM_RULE]
|
82
|
+
country[Core::NATIONAL_PREFIX_TRANSFORM_RULE].gsub!('$', '\\')
|
83
|
+
end
|
81
84
|
@data[country[:id]] = country
|
82
85
|
end
|
83
86
|
end
|
@@ -91,17 +91,6 @@ module Phonelib
|
|
91
91
|
"\\d{#{m}}"
|
92
92
|
end
|
93
93
|
end.join('|')
|
94
|
-
=begin
|
95
|
-
attributes.map do |k, v|
|
96
|
-
v.split(',').map do |m|
|
97
|
-
if m.include? '-'
|
98
|
-
"\\d{#{m.gsub(/[\[\]]/, '').gsub('-', ',')}}"
|
99
|
-
else
|
100
|
-
"\\d{#{m}}"
|
101
|
-
end
|
102
|
-
end.join('|')
|
103
|
-
end.join('|')
|
104
|
-
=end
|
105
94
|
end
|
106
95
|
|
107
96
|
# method parses raw data file
|
@@ -46,6 +46,18 @@ module Phonelib
|
|
46
46
|
base_result
|
47
47
|
end
|
48
48
|
|
49
|
+
# replacing national prefix to simplified format
|
50
|
+
def with_replaced_national_prefix(phone, data)
|
51
|
+
return phone unless data[Core::NATIONAL_PREFIX_TRANSFORM_RULE]
|
52
|
+
pattern = cr("^(?:#{data[Core::NATIONAL_PREFIX_FOR_PARSING]})")
|
53
|
+
match = phone.match pattern
|
54
|
+
if match && match.captures.compact.size > 0
|
55
|
+
phone.gsub(pattern, data[Core::NATIONAL_PREFIX_TRANSFORM_RULE])
|
56
|
+
else
|
57
|
+
phone
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
49
61
|
# trying to parse phone for single country including international prefix
|
50
62
|
# check for provided country
|
51
63
|
#
|
@@ -60,7 +72,7 @@ module Phonelib
|
|
60
72
|
# if country was provided and it's a valid country, trying to
|
61
73
|
# create e164 representation of phone number,
|
62
74
|
# kind of normalization for parsing
|
63
|
-
e164 = convert_to_e164 phone, data
|
75
|
+
e164 = convert_to_e164 with_replaced_national_prefix(phone, data), data
|
64
76
|
# if phone starts with international prefix of provided
|
65
77
|
# country try to reanalyze without international prefix for
|
66
78
|
# all countries
|
data/lib/phonelib/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: phonelib
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.20
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vadim Senderovich
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-03
|
11
|
+
date: 2018-04-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -28,16 +28,16 @@ dependencies:
|
|
28
28
|
name: nokogiri
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 1.
|
33
|
+
version: 1.8.1
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 1.
|
40
|
+
version: 1.8.1
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: pry
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|