phony 1.6.6 → 1.6.7
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/phony.rb +3 -3
- data/lib/phony/countries.rb +5 -1
- data/lib/phony/country_codes.rb +1 -1
- data/lib/phony/validators.rb +2 -2
- data/spec/lib/phony/validations_spec.rb +36 -1
- metadata +2 -2
data/lib/phony.rb
CHANGED
@@ -39,8 +39,8 @@ module Phony
|
|
39
39
|
|
40
40
|
# Phony uses a single country codes instance.
|
41
41
|
#
|
42
|
-
@codes
|
43
|
-
@
|
42
|
+
@codes = CountryCodes.instance
|
43
|
+
@validators = Validators.instance
|
44
44
|
|
45
45
|
class << self
|
46
46
|
|
@@ -85,7 +85,7 @@ module Phony
|
|
85
85
|
# leaning towards being plausible.
|
86
86
|
#
|
87
87
|
def plausible? number, hints = {}
|
88
|
-
@
|
88
|
+
@validators.plausible? number, hints
|
89
89
|
end
|
90
90
|
|
91
91
|
# def service? number
|
data/lib/phony/countries.rb
CHANGED
@@ -17,6 +17,10 @@
|
|
17
17
|
# * matched_split: Give a hash of regex => format array, with a :fallback => format option.
|
18
18
|
# (See Norway how it looks.)
|
19
19
|
#
|
20
|
+
# The third parameter to country are validations.
|
21
|
+
# Currently, there is one method available:
|
22
|
+
# * invalid_ndcs: Give a regexp or string to describe invalid ndc(s).
|
23
|
+
#
|
20
24
|
# Note: The ones that are commented are defined in their special files.
|
21
25
|
#
|
22
26
|
Phony.define do
|
@@ -29,7 +33,7 @@ Phony.define do
|
|
29
33
|
#
|
30
34
|
country '1',
|
31
35
|
fixed(3) >> split(3,4),
|
32
|
-
invalid_ndcs(/911/
|
36
|
+
invalid_ndcs('911') # /911/ would also work.
|
33
37
|
|
34
38
|
# Kazakhstan (Republic of) & Russian Federation.
|
35
39
|
#
|
data/lib/phony/country_codes.rb
CHANGED
data/lib/phony/validators.rb
CHANGED
@@ -49,12 +49,12 @@ module Phony
|
|
49
49
|
# CC.
|
50
50
|
#
|
51
51
|
cc_needed = hints[:cc]
|
52
|
-
return false if cc_needed && cc_needed
|
52
|
+
return false if cc_needed && !(cc_needed === cc)
|
53
53
|
|
54
54
|
# NDC.
|
55
55
|
#
|
56
56
|
ndc_needed = hints[:ndc]
|
57
|
-
return false if ndc_needed && ndc_needed
|
57
|
+
return false if ndc_needed && !(ndc_needed === ndc)
|
58
58
|
|
59
59
|
# Country specific checks.
|
60
60
|
#
|
@@ -28,12 +28,47 @@ describe 'validations' do
|
|
28
28
|
it "is correct for explicit checks" do
|
29
29
|
Phony.plausible?('+41 44 111 22 33', ndc: '43').should be_false
|
30
30
|
end
|
31
|
+
it "is correct for explicit checks" do
|
32
|
+
Phony.plausible?('+41 44 111 22 33', cc: '41', ndc: '44').should be_true
|
33
|
+
end
|
34
|
+
it "works with regexps" do
|
35
|
+
Phony.plausible?('+41 44 111 22 33', cc: /4(0|2)/, ndc: /4(4|5)/).should be_false
|
36
|
+
end
|
37
|
+
it "works with regexps" do
|
38
|
+
Phony.plausible?('+41 44 111 22 33', cc: /4(0|1)/, ndc: /4(4|5)/).should be_true
|
39
|
+
end
|
31
40
|
|
32
|
-
context 'countries' do
|
41
|
+
context 'specific countries' do
|
42
|
+
|
43
|
+
# TODO
|
44
|
+
#
|
45
|
+
# it "is correct for Swiss numbers" do
|
46
|
+
# Phony.plausible?('+41 44 111 22 33').should be_true
|
47
|
+
# end
|
33
48
|
|
34
49
|
it "is correct for US numbers" do
|
50
|
+
# Sorry, still need E164 conform numbers.
|
51
|
+
#
|
52
|
+
Phony.plausible?('4346667777', cc: '1').should be_false
|
53
|
+
|
54
|
+
# Automatic country checking.
|
55
|
+
#
|
56
|
+
Phony.plausible?('1-4346667777').should be_true
|
35
57
|
Phony.plausible?('1-800-692-7753').should be_true
|
36
58
|
Phony.plausible?('1-911').should be_false
|
59
|
+
Phony.plausible?('1-911-123-1234').should be_false
|
60
|
+
|
61
|
+
# With string constraints.
|
62
|
+
#
|
63
|
+
Phony.plausible?('14346667777', cc: '1').should be_true
|
64
|
+
Phony.plausible?('14346667777', ndc: '434').should be_true
|
65
|
+
Phony.plausible?('14346667777', cc: '1', ndc: '434').should be_true
|
66
|
+
|
67
|
+
# With regexp constraints.
|
68
|
+
#
|
69
|
+
Phony.plausible?('14346667777', cc: /[123]/).should be_true
|
70
|
+
Phony.plausible?('14346667777', ndc: /434|435/).should be_true
|
71
|
+
Phony.plausible?('14346667777', cc: /[123]/, ndc: /434|435/).should be_true
|
37
72
|
end
|
38
73
|
|
39
74
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: phony
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.6.
|
4
|
+
version: 1.6.7
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-03-
|
12
|
+
date: 2012-03-20 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: ! 'Fast international phone number (E164 standard) normalizing, splitting
|
15
15
|
and formatting. Lots of formatting options: International (+.., 00..), national
|