phonelib 0.6.26 → 0.6.27
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/README.md +1 -1
- 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 +17 -0
- data/lib/phonelib/data_importer_helper.rb +1 -0
- data/lib/phonelib/phone_extended_data.rb +7 -0
- data/lib/phonelib/version.rb +1 -1
- data/lib/validators/phone_validator.rb +6 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0bbc14f23529356b7e5f1ae1f8d189e7b586aa44
|
4
|
+
data.tar.gz: 96bb81f6b1a68d873452ce0d16b7e305cf9254a8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 46baab7368eda1a4defbcb9ce688811d8dc4c13df64dad099afb104a76e1cd5eda9f1d4bc1c9c332e89147965ba94ee7d1b6cdfd1ec4c2004aca91d7f2a7479d
|
7
|
+
data.tar.gz: 816cf2b257288ca4173d7809fc8d3e8c1f192d50c0b6d56aa27f5392a1e15db6ab7df4c9343e491b5febaebcc99abcc3599a4e7d93ed7f9074bff7b64afea04c
|
data/README.md
CHANGED
@@ -111,7 +111,7 @@ if mixed with <tt>possible</tt> will check if number is possible for specified t
|
|
111
111
|
<tt>countries: :us</tt> or <tt>countries: [:us, :ca]</tt> - allows to validate against specific countries,
|
112
112
|
if mixed with <tt>possible</tt> will check if number is possible for specified countries
|
113
113
|
|
114
|
-
<tt>country_specifier: ->
|
114
|
+
<tt>country_specifier: :method_name</tt> or <tt>country_specifier: -> instance { instance.country.try(:upcase) }</tt> - allows to specify country for validation dynamically for each validation. Usefull when phone is stored as national number without country prefix.
|
115
115
|
|
116
116
|
<tt>extensions: false</tt> - set to perform check for phone extension to be blank
|
117
117
|
|
data/data/extended_data.dat
CHANGED
Binary file
|
data/data/phone_data.dat
CHANGED
Binary file
|
data/lib/phonelib/core.rb
CHANGED
@@ -285,6 +285,8 @@ module Phonelib
|
|
285
285
|
EXT_PREFIXES = :prefixes
|
286
286
|
# @private Extended data geo names array key
|
287
287
|
EXT_GEO_NAMES = :geo_names
|
288
|
+
# @private Extended data country names array key
|
289
|
+
EXT_COUNTRY_NAMES = :country_names
|
288
290
|
# @private Extended data timezones array key
|
289
291
|
EXT_TIMEZONES = :timezones
|
290
292
|
# @private Extended data carriers array key
|
@@ -42,6 +42,7 @@ module Phonelib
|
|
42
42
|
@geo_names = []
|
43
43
|
@timezones = []
|
44
44
|
@carriers = []
|
45
|
+
@countries = {}
|
45
46
|
|
46
47
|
run_import
|
47
48
|
end
|
@@ -57,6 +58,7 @@ module Phonelib
|
|
57
58
|
import_geocoding_data
|
58
59
|
import_timezone_data
|
59
60
|
import_carrier_data
|
61
|
+
import_country_names
|
60
62
|
save_data_file
|
61
63
|
save_extended_data_file
|
62
64
|
end
|
@@ -137,6 +139,21 @@ module Phonelib
|
|
137
139
|
:c)
|
138
140
|
end
|
139
141
|
|
142
|
+
# import country names
|
143
|
+
def import_country_names
|
144
|
+
puts 'IMPORTING COUNTRY NAMES'
|
145
|
+
|
146
|
+
require 'open-uri'
|
147
|
+
require 'csv'
|
148
|
+
io = open('http://download.geonames.org/export/dump/countryInfo.txt')
|
149
|
+
csv = CSV.new(io, {col_sep: "\t"})
|
150
|
+
csv.each do |row|
|
151
|
+
next if row[0].start_with?('#') || row[0].empty?
|
152
|
+
|
153
|
+
@countries[row[0]] = row[4]
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
140
157
|
# adds double country code flag in case country allows
|
141
158
|
def add_double_country_flag(country)
|
142
159
|
if DOUBLE_COUNTRY_CODES_COUNTRIES.include?(country[:id])
|
@@ -22,6 +22,7 @@ module Phonelib
|
|
22
22
|
extended = {
|
23
23
|
Phonelib::Core::EXT_PREFIXES => @prefixes,
|
24
24
|
Phonelib::Core::EXT_GEO_NAMES => @geo_names,
|
25
|
+
Phonelib::Core::EXT_COUNTRY_NAMES => @countries,
|
25
26
|
Phonelib::Core::EXT_TIMEZONES => @timezones,
|
26
27
|
Phonelib::Core::EXT_CARRIERS => @carriers
|
27
28
|
}
|
@@ -32,6 +32,13 @@ module Phonelib
|
|
32
32
|
Phonelib::Core::EXT_CARRIER_KEY
|
33
33
|
end
|
34
34
|
|
35
|
+
# returns valid country name
|
36
|
+
def valid_country_name
|
37
|
+
return unless valid?
|
38
|
+
|
39
|
+
Phonelib.phone_ext_data[Phonelib::Core::EXT_COUNTRY_NAMES][valid_country]
|
40
|
+
end
|
41
|
+
|
35
42
|
private
|
36
43
|
|
37
44
|
# @private get name from extended phone data by keys
|
data/lib/phonelib/version.rb
CHANGED
@@ -92,7 +92,12 @@ class PhoneValidator < ActiveModel::EachValidator
|
|
92
92
|
|
93
93
|
def specified_country(record)
|
94
94
|
return unless options[:country_specifier]
|
95
|
-
|
95
|
+
|
96
|
+
if options[:country_specifier].is_a?(Symbol)
|
97
|
+
record.send(options[:country_specifier])
|
98
|
+
else
|
99
|
+
options[:country_specifier].call(record)
|
100
|
+
end
|
96
101
|
end
|
97
102
|
|
98
103
|
# @private
|
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.27
|
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-
|
11
|
+
date: 2018-11-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|