phonelib 0.6.13 → 0.6.14
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 +4 -2
- data/data/extended_data.dat +0 -0
- data/data/phone_data.dat +0 -0
- data/lib/phonelib/phone.rb +2 -1
- data/lib/phonelib/version.rb +1 -1
- data/lib/validators/phone_validator.rb +14 -0
- 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: 964115d75e8eb5754a311ab68f6ac258b2c7229d
|
4
|
+
data.tar.gz: 4ec38c67a691121dc9f0a4fa6a63ac285d3effc8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 96f9fb2295beb53be069d89e3b117f724c582f0477a8e4d233a623c579849b6a29bcca06f9744b80ebceb3e8111e0cb0e118e3aa98fc769585df7658247661ce
|
7
|
+
data.tar.gz: 4f09a4feeadd4025b72556c41e56dbcc3596fdf9302c7a01c134ac8086584c1a3f033974dd553a3f128e76f8cfdbce58ead091f96b39093a8a2dcbcae498398f
|
data/README.md
CHANGED
@@ -108,7 +108,9 @@ Refer to [Google libphonenumber](http://code.google.com/p/libphonenumber/) for m
|
|
108
108
|
<tt>types: :mobile</tt> or <tt>types: [:voip, :mobile]</tt> - allows to validate against specific phone types patterns,
|
109
109
|
if mixed with <tt>possible</tt> will check if number is possible for specified type
|
110
110
|
|
111
|
-
<tt>country_specifier: -> phone { phone.country.try(:upcase) }</tt> - allows to specify country for validation dynamically for each validation.
|
111
|
+
<tt>country_specifier: -> phone { phone.country.try(:upcase) }</tt> - allows to specify country for validation dynamically for each validation.
|
112
|
+
|
113
|
+
<tt>extensions: false</tt> - set to perform check for phone extension to be blank
|
112
114
|
|
113
115
|
### Basic usage
|
114
116
|
|
@@ -276,4 +278,4 @@ If you want to run including Rails environment, you need to set <tt>BUNDLE_GEMFI
|
|
276
278
|
BUNDLE_GEMFILE=gemfiles/Gemfile.rails-3.2.x bundle exec rake spec
|
277
279
|
```
|
278
280
|
|
279
|
-
Gemfiles can be found in <tt>gemfiles</tt> folder, there are gemfiles for Rails 3.1, 3.2 and
|
281
|
+
Gemfiles can be found in <tt>gemfiles</tt> folder, there are gemfiles for Rails 3.1, 3.2, 4, 5 and 5.1.
|
data/data/extended_data.dat
CHANGED
Binary file
|
data/data/phone_data.dat
CHANGED
Binary file
|
data/lib/phonelib/phone.rb
CHANGED
@@ -147,7 +147,8 @@ module Phonelib
|
|
147
147
|
# @return [Boolean] parsed phone number is valid
|
148
148
|
def valid_for_country?(country)
|
149
149
|
country = country.to_s.upcase
|
150
|
-
|
150
|
+
tdata = analyze(sanitized, passed_country(country))
|
151
|
+
tdata.find do |iso2, data|
|
151
152
|
country == iso2 && data[:valid].any?
|
152
153
|
end.is_a? Array
|
153
154
|
end
|
data/lib/phonelib/version.rb
CHANGED
@@ -36,6 +36,14 @@
|
|
36
36
|
# validates :mobile, phone: { possible: true, types: :mobile }
|
37
37
|
# end
|
38
38
|
#
|
39
|
+
# Validates that attribute does not include an extension.
|
40
|
+
# The default setting is to allow extensions
|
41
|
+
#
|
42
|
+
# class Phone < ActiveRecord::Base
|
43
|
+
# attr_accessible :number
|
44
|
+
# validates :number, phone: { extensions: false }
|
45
|
+
# end
|
46
|
+
#
|
39
47
|
class PhoneValidator < ActiveModel::EachValidator
|
40
48
|
# Include all core methods
|
41
49
|
include Phonelib::Core
|
@@ -43,6 +51,7 @@ class PhoneValidator < ActiveModel::EachValidator
|
|
43
51
|
# Validation method
|
44
52
|
def validate_each(record, attribute, value)
|
45
53
|
return if options[:allow_blank] && value.blank?
|
54
|
+
options[:extensions] ||= true
|
46
55
|
|
47
56
|
phone = parse(value, specified_country(record))
|
48
57
|
valid = if simple_validation?
|
@@ -51,6 +60,11 @@ class PhoneValidator < ActiveModel::EachValidator
|
|
51
60
|
(phone_types(phone) & types).size > 0
|
52
61
|
end
|
53
62
|
|
63
|
+
# We default to not-allowing extensions for fax numbers
|
64
|
+
if valid && options[:extensions] === false && !phone.extension.empty?
|
65
|
+
valid = false
|
66
|
+
end
|
67
|
+
|
54
68
|
record.errors.add(attribute, message, options) unless valid
|
55
69
|
end
|
56
70
|
|
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.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vadim Senderovich
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-09-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|