telephone_number 1.2.4 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -1
- data/data/geocoding/ar/82.txt +0 -0
- data/data/geocoding/ar/966.txt +0 -0
- data/data/geocoding/be/375.txt +0 -0
- data/data/geocoding/bg/359.txt +0 -0
- data/data/geocoding/bg/82.txt +0 -0
- data/data/geocoding/bs/387.txt +0 -0
- data/data/geocoding/ca/82.txt +0 -0
- data/data/geocoding/cs/82.txt +0 -0
- data/data/geocoding/de/32.txt +0 -0
- data/data/geocoding/de/352.txt +0 -0
- data/data/geocoding/de/41.txt +0 -0
- data/data/geocoding/de/43.txt +0 -0
- data/data/geocoding/de/49.txt +0 -0
- data/data/geocoding/el/30.txt +0 -0
- data/data/geocoding/el/82.txt +0 -0
- data/data/geocoding/en/1.dat +0 -0
- data/data/geocoding/en/1.txt +1 -0
- data/data/geocoding/en/20.txt +0 -0
- data/data/geocoding/en/212.txt +0 -0
- data/data/geocoding/en/213.txt +0 -0
- data/data/geocoding/en/216.txt +0 -0
- data/data/geocoding/en/218.txt +0 -0
- data/data/geocoding/en/220.txt +0 -0
- data/data/geocoding/en/221.txt +0 -0
- data/data/geocoding/en/222.txt +0 -0
- data/data/geocoding/en/223.txt +0 -0
- data/data/geocoding/en/224.txt +0 -0
- data/data/geocoding/en/225.txt +0 -0
- data/data/geocoding/en/226.txt +0 -0
- data/data/geocoding/en/227.txt +0 -0
- data/data/geocoding/en/228.txt +0 -0
- data/data/geocoding/en/229.txt +0 -0
- data/data/geocoding/en/230.txt +0 -0
- data/data/geocoding/en/232.txt +0 -0
- data/data/geocoding/en/233.txt +0 -0
- data/data/geocoding/en/234.txt +0 -0
- data/data/geocoding/en/237.txt +0 -0
- data/data/geocoding/en/238.txt +0 -0
- data/data/geocoding/en/239.txt +0 -0
- data/data/geocoding/en/240.txt +0 -0
- data/data/geocoding/en/241.txt +0 -0
- data/data/geocoding/en/242.txt +0 -0
- data/data/geocoding/en/243.txt +0 -0
- data/data/geocoding/en/244.txt +0 -0
- data/data/geocoding/en/245.txt +0 -0
- data/data/geocoding/en/247.txt +0 -0
- data/data/geocoding/en/249.txt +0 -0
- data/data/geocoding/en/251.txt +0 -0
- data/data/geocoding/en/252.txt +0 -0
- data/data/geocoding/en/254.txt +0 -0
- data/data/geocoding/en/255.txt +0 -0
- data/data/geocoding/en/256.txt +0 -0
- data/data/geocoding/en/257.txt +0 -0
- data/data/geocoding/en/258.txt +0 -0
- data/data/geocoding/en/260.txt +0 -0
- data/data/geocoding/en/261.txt +0 -0
- data/data/geocoding/en/263.txt +0 -0
- data/data/geocoding/en/264.txt +0 -0
- data/data/geocoding/en/266.txt +0 -0
- data/data/geocoding/en/267.txt +0 -0
- data/data/geocoding/en/268.dat +0 -0
- data/data/geocoding/en/268.txt +4 -4
- data/data/geocoding/en/269.txt +0 -0
- data/data/geocoding/en/27.txt +0 -0
- data/data/geocoding/en/290.txt +0 -0
- data/data/geocoding/en/299.txt +0 -0
- data/data/geocoding/en/30.txt +0 -0
- data/data/geocoding/en/31.txt +0 -0
- data/data/geocoding/en/32.txt +0 -0
- data/data/geocoding/en/33.txt +0 -0
- data/data/geocoding/en/34.txt +0 -0
- data/data/geocoding/en/351.txt +0 -0
- data/data/geocoding/en/352.txt +0 -0
- data/data/geocoding/en/353.txt +0 -0
- data/data/geocoding/en/354.txt +0 -0
- data/data/geocoding/en/355.txt +0 -0
- data/data/geocoding/en/358.txt +0 -0
- data/data/geocoding/en/359.txt +0 -0
- data/data/geocoding/en/36.txt +0 -0
- data/data/geocoding/en/370.txt +0 -0
- data/data/geocoding/en/371.txt +0 -0
- data/data/geocoding/en/372.txt +0 -0
- data/data/geocoding/en/373.txt +0 -0
- data/data/geocoding/en/374.txt +0 -0
- data/data/geocoding/en/375.txt +0 -0
- data/data/geocoding/en/380.txt +0 -0
- data/data/geocoding/en/381.txt +0 -0
- data/data/geocoding/en/383.txt +0 -0
- data/data/geocoding/en/387.txt +0 -0
- data/data/geocoding/en/389.txt +0 -0
- data/data/geocoding/en/39.txt +0 -0
- data/data/geocoding/en/40.txt +0 -0
- data/data/geocoding/en/41.txt +0 -0
- data/data/geocoding/en/420.txt +0 -0
- data/data/geocoding/en/421.txt +0 -0
- data/data/geocoding/en/43.txt +0 -0
- data/data/geocoding/en/44.txt +0 -0
- data/data/geocoding/en/46.txt +0 -0
- data/data/geocoding/en/47.txt +0 -0
- data/data/geocoding/en/48.txt +0 -0
- data/data/geocoding/en/49.txt +0 -0
- data/data/geocoding/en/501.txt +0 -0
- data/data/geocoding/en/504.txt +0 -0
- data/data/geocoding/en/51.txt +0 -0
- data/data/geocoding/en/52.txt +0 -0
- data/data/geocoding/en/53.txt +0 -0
- data/data/geocoding/en/54.txt +0 -0
- data/data/geocoding/en/55.txt +0 -0
- data/data/geocoding/en/56.txt +0 -0
- data/data/geocoding/en/57.txt +0 -0
- data/data/geocoding/en/58.txt +0 -0
- data/data/geocoding/en/592.txt +0 -0
- data/data/geocoding/en/599.txt +0 -0
- data/data/geocoding/en/61.txt +0 -0
- data/data/geocoding/en/62.txt +0 -0
- data/data/geocoding/en/64.txt +0 -0
- data/data/geocoding/en/66.txt +0 -0
- data/data/geocoding/en/675.txt +0 -0
- data/data/geocoding/en/680.txt +0 -0
- data/data/geocoding/en/686.txt +0 -0
- data/data/geocoding/en/688.txt +0 -0
- data/data/geocoding/en/7.txt +0 -0
- data/data/geocoding/en/81.txt +0 -0
- data/data/geocoding/en/82.txt +0 -0
- data/data/geocoding/en/84.txt +0 -0
- data/data/geocoding/en/86.txt +0 -0
- data/data/geocoding/en/886.txt +0 -0
- data/data/geocoding/en/90.txt +0 -0
- data/data/geocoding/en/91.txt +0 -0
- data/data/geocoding/en/93.txt +0 -0
- data/data/geocoding/en/94.txt +0 -0
- data/data/geocoding/en/95.txt +0 -0
- data/data/geocoding/en/960.txt +0 -0
- data/data/geocoding/en/962.txt +0 -0
- data/data/geocoding/en/966.txt +0 -0
- data/data/geocoding/en/968.txt +0 -0
- data/data/geocoding/en/972.txt +0 -0
- data/data/geocoding/en/975.txt +0 -0
- data/data/geocoding/en/976.txt +0 -0
- data/data/geocoding/en/98.txt +0 -0
- data/data/geocoding/en/992.txt +0 -0
- data/data/geocoding/en/994.txt +0 -0
- data/data/geocoding/es/228.txt +0 -0
- data/data/geocoding/es/230.txt +0 -0
- data/data/geocoding/es/34.txt +0 -0
- data/data/geocoding/es/52.txt +0 -0
- data/data/geocoding/es/54.txt +0 -0
- data/data/geocoding/es/56.txt +0 -0
- data/data/geocoding/es/57.txt +0 -0
- data/data/geocoding/es/58.txt +0 -0
- data/data/geocoding/es/82.txt +0 -0
- data/data/geocoding/fa/93.txt +0 -0
- data/data/geocoding/fa/98.txt +0 -0
- data/data/geocoding/fi/358.txt +0 -0
- data/data/geocoding/fi/82.txt +0 -0
- data/data/geocoding/fr/212.txt +0 -0
- data/data/geocoding/fr/222.txt +0 -0
- data/data/geocoding/fr/225.txt +0 -0
- data/data/geocoding/fr/228.txt +0 -0
- data/data/geocoding/fr/229.txt +0 -0
- data/data/geocoding/fr/230.txt +0 -0
- data/data/geocoding/fr/242.txt +0 -0
- data/data/geocoding/fr/243.txt +0 -0
- data/data/geocoding/fr/269.txt +0 -0
- data/data/geocoding/fr/290.txt +0 -0
- data/data/geocoding/fr/32.txt +0 -0
- data/data/geocoding/fr/33.txt +0 -0
- data/data/geocoding/fr/352.txt +0 -0
- data/data/geocoding/fr/41.txt +0 -0
- data/data/geocoding/fr/82.txt +0 -0
- data/data/geocoding/hi/82.txt +0 -0
- data/data/geocoding/hr/387.txt +0 -0
- data/data/geocoding/hu/36.txt +0 -0
- data/data/geocoding/hu/82.txt +0 -0
- data/data/geocoding/hy/374.txt +0 -0
- data/data/geocoding/id/62.txt +0 -0
- data/data/geocoding/it/39.txt +0 -0
- data/data/geocoding/it/41.txt +0 -0
- data/data/geocoding/iw/82.txt +0 -0
- data/data/geocoding/iw/972.txt +0 -0
- data/data/geocoding/ja/81.txt +0 -0
- data/data/geocoding/ja/82.txt +0 -0
- data/data/geocoding/ko/82.txt +0 -0
- data/data/geocoding/nl/31.txt +0 -0
- data/data/geocoding/nl/32.txt +0 -0
- data/data/geocoding/pl/48.txt +0 -0
- data/data/geocoding/pl/82.txt +0 -0
- data/data/geocoding/pt/238.txt +0 -0
- data/data/geocoding/pt/239.txt +0 -0
- data/data/geocoding/pt/244.txt +0 -0
- data/data/geocoding/pt/245.txt +0 -0
- data/data/geocoding/pt/258.txt +0 -0
- data/data/geocoding/pt/351.txt +0 -0
- data/data/geocoding/pt/55.txt +0 -0
- data/data/geocoding/pt/82.txt +0 -0
- data/data/geocoding/ro/373.txt +0 -0
- data/data/geocoding/ro/40.txt +0 -0
- data/data/geocoding/ro/82.txt +0 -0
- data/data/geocoding/ru/373.txt +0 -0
- data/data/geocoding/ru/374.txt +0 -0
- data/data/geocoding/ru/375.txt +0 -0
- data/data/geocoding/ru/7.txt +0 -0
- data/data/geocoding/ru/82.txt +0 -0
- data/data/geocoding/sl/82.txt +0 -0
- data/data/geocoding/sq/383.txt +0 -0
- data/data/geocoding/sr/381.txt +0 -0
- data/data/geocoding/sr/383.txt +0 -0
- data/data/geocoding/sr/387.txt +0 -0
- data/data/geocoding/sr/82.txt +0 -0
- data/data/geocoding/sv/358.txt +0 -0
- data/data/geocoding/sv/46.txt +0 -0
- data/data/geocoding/th/66.txt +0 -0
- data/data/geocoding/tr/82.txt +0 -0
- data/data/geocoding/tr/90.txt +0 -0
- data/data/geocoding/uk/82.txt +0 -0
- data/data/geocoding/vi/82.txt +0 -0
- data/data/geocoding/vi/84.txt +0 -0
- data/data/geocoding/zh/82.txt +0 -0
- data/data/geocoding/zh/86.txt +0 -0
- data/data/geocoding/zh/886.txt +0 -0
- data/data/geocoding/zh_Hant/82.txt +0 -0
- data/data/geocoding/zh_Hant/886.txt +0 -0
- data/data/telephone_number_data_file.dat +0 -0
- data/data/telephone_number_data_file.xml +437 -282
- data/data/timezones/README.md +0 -0
- data/data/timezones/map_data.dat +0 -0
- data/data/timezones/map_data.txt +662 -29
- data/lib/active_model/telephone_number_validator.rb +17 -3
- data/lib/telephone_number/formatter.rb +1 -1
- data/lib/telephone_number/version.rb +1 -1
- metadata +2 -2
@@ -1,9 +1,23 @@
|
|
1
1
|
class TelephoneNumberValidator < ActiveModel::EachValidator
|
2
2
|
def validate_each(record, attribute, value)
|
3
|
-
country = options[:country].call(record) if options.key?(:country)
|
4
3
|
valid_types = options.fetch(:types, [])
|
5
|
-
args = [value, country, valid_types]
|
4
|
+
args = [value, country(record), valid_types]
|
5
|
+
record.errors.add(attribute, message) if TelephoneNumber.invalid?(*args)
|
6
|
+
end
|
7
|
+
|
8
|
+
def message
|
9
|
+
options[:message] || :invalid
|
10
|
+
end
|
6
11
|
|
7
|
-
|
12
|
+
def country(record)
|
13
|
+
country_option = options[:country]
|
14
|
+
if country_option.is_a? Proc
|
15
|
+
country_option.call(record)
|
16
|
+
elsif country_option.is_a?(Symbol) || country_option.is_a?(String)
|
17
|
+
# make sure its a lowercase symbol
|
18
|
+
country_option.downcase.to_sym
|
19
|
+
else
|
20
|
+
raise ArgumentError.new('country option must be a Proc, Symbol or String')
|
21
|
+
end
|
8
22
|
end
|
9
23
|
end
|
@@ -41,7 +41,7 @@ module TelephoneNumber
|
|
41
41
|
|
42
42
|
if number_format.national_prefix_formatting_rule
|
43
43
|
national_prefix_string = number_format.national_prefix_formatting_rule.dup
|
44
|
-
national_prefix_string.gsub!(/\$NP/, country.national_prefix)
|
44
|
+
national_prefix_string.gsub!(/\$NP/, country.national_prefix.to_s)
|
45
45
|
national_prefix_string.gsub!(/\$FG/, captures[0])
|
46
46
|
formatted_string.sub!(captures[0], national_prefix_string)
|
47
47
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: telephone_number
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- MOBI Wireless Management
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-04-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|