activevalidators 1.7.1 → 1.8.0
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.
- data/README.md +1 -1
- data/Rakefile +0 -2
- data/activevalidators.gemspec +0 -1
- data/lib/active_model/validations/postal_code_validator.rb +10 -3
- data/lib/active_model/validations/tracking_number_validator.rb +1 -1
- data/lib/active_validators/version.rb +1 -1
- data/test/test_helper.rb +0 -1
- data/test/validations/date_test.rb +1 -1
- data/test/validations/tracking_number_test.rb +4 -0
- metadata +15 -29
data/README.md
CHANGED
@@ -21,7 +21,7 @@ In your models, the gem provides new validators like `email`, or `url`:
|
|
21
21
|
validates :twitter_at, :twitter => { :format => :username_with_at }
|
22
22
|
validates :twitter_url, :twitter => { :format => :url }
|
23
23
|
validates :twitter, :twitter => true
|
24
|
-
validates :postal_code, :postal_code => { :
|
24
|
+
validates :postal_code, :postal_code => { :country => :us }
|
25
25
|
end
|
26
26
|
|
27
27
|
class Article
|
data/Rakefile
CHANGED
data/activevalidators.gemspec
CHANGED
@@ -15,7 +15,6 @@ Gem::Specification.new do |s|
|
|
15
15
|
|
16
16
|
s.add_development_dependency "bundler"
|
17
17
|
s.add_development_dependency "minitest"
|
18
|
-
s.add_development_dependency "turn"
|
19
18
|
s.add_dependency 'rake' , '>= 0.8.7'
|
20
19
|
s.add_dependency 'activerecord' , '>= 3.0.0'
|
21
20
|
s.add_dependency 'activemodel' , '>= 3.0.0'
|
@@ -3,15 +3,22 @@ module ActiveModel
|
|
3
3
|
class PostalCodeValidator < EachValidator
|
4
4
|
def validate_each(record, attribute, value)
|
5
5
|
@value = value
|
6
|
-
country = options[:country]
|
7
|
-
|
6
|
+
unless country = options[:country]
|
7
|
+
if country_method = options[:country_method]
|
8
|
+
country = record.send(country_method)
|
9
|
+
else
|
10
|
+
country = 'us'
|
11
|
+
end
|
12
|
+
end
|
13
|
+
@formats = PostalCodeValidator.known_formats[country.to_s]
|
8
14
|
raise "No known postal code formats for country #{country}" unless @formats
|
9
15
|
record.errors.add(attribute) if value.blank? || !matches_any?
|
10
16
|
end
|
11
17
|
|
12
18
|
def self.known_formats
|
13
19
|
@@known_formats ||= {
|
14
|
-
|
20
|
+
'us' => ['#####', '#####-####'],
|
21
|
+
'pt' => ['####', '####-###'],
|
15
22
|
}
|
16
23
|
end
|
17
24
|
|
data/test/test_helper.rb
CHANGED
@@ -11,6 +11,6 @@ describe "Date Validation" do
|
|
11
11
|
d = TestRecord.new(:start_date => Time.now, :end_date => Time.now - 1)
|
12
12
|
|
13
13
|
refute d.valid?
|
14
|
-
refute_includes d.errors.
|
14
|
+
refute_includes d.errors.to_s, 'translation missing'
|
15
15
|
end
|
16
16
|
end
|
@@ -68,6 +68,10 @@ describe "Tracking Number Validation" do
|
|
68
68
|
assert_valid_tracking_number({:carrier => :usps}, '71123456789123456787')
|
69
69
|
end
|
70
70
|
|
71
|
+
it '20 character USS128 tracking number with valid MOD10 check digit ending in 0' do
|
72
|
+
assert_valid_tracking_number({:carrier => :usps}, '03110240000115809160')
|
73
|
+
end
|
74
|
+
|
71
75
|
it '22 character USS128 tracking number with valid MOD10 check digit' do
|
72
76
|
assert_valid_tracking_number({:carrier => :usps}, '9171969010756003077385')
|
73
77
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activevalidators
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 55
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 1.
|
8
|
+
- 8
|
9
|
+
- 0
|
10
|
+
version: 1.8.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Franck Verrot
|
@@ -20,7 +20,7 @@ autorequire:
|
|
20
20
|
bindir: bin
|
21
21
|
cert_chain: []
|
22
22
|
|
23
|
-
date: 2011-
|
23
|
+
date: 2011-11-26 00:00:00 Z
|
24
24
|
dependencies:
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: bundler
|
@@ -50,24 +50,10 @@ dependencies:
|
|
50
50
|
version: "0"
|
51
51
|
type: :development
|
52
52
|
version_requirements: *id002
|
53
|
-
- !ruby/object:Gem::Dependency
|
54
|
-
name: turn
|
55
|
-
prerelease: false
|
56
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
|
-
requirements:
|
59
|
-
- - ">="
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
hash: 3
|
62
|
-
segments:
|
63
|
-
- 0
|
64
|
-
version: "0"
|
65
|
-
type: :development
|
66
|
-
version_requirements: *id003
|
67
53
|
- !ruby/object:Gem::Dependency
|
68
54
|
name: rake
|
69
55
|
prerelease: false
|
70
|
-
requirement: &
|
56
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
71
57
|
none: false
|
72
58
|
requirements:
|
73
59
|
- - ">="
|
@@ -79,11 +65,11 @@ dependencies:
|
|
79
65
|
- 7
|
80
66
|
version: 0.8.7
|
81
67
|
type: :runtime
|
82
|
-
version_requirements: *
|
68
|
+
version_requirements: *id003
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
70
|
name: activerecord
|
85
71
|
prerelease: false
|
86
|
-
requirement: &
|
72
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
87
73
|
none: false
|
88
74
|
requirements:
|
89
75
|
- - ">="
|
@@ -95,11 +81,11 @@ dependencies:
|
|
95
81
|
- 0
|
96
82
|
version: 3.0.0
|
97
83
|
type: :runtime
|
98
|
-
version_requirements: *
|
84
|
+
version_requirements: *id004
|
99
85
|
- !ruby/object:Gem::Dependency
|
100
86
|
name: activemodel
|
101
87
|
prerelease: false
|
102
|
-
requirement: &
|
88
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
103
89
|
none: false
|
104
90
|
requirements:
|
105
91
|
- - ">="
|
@@ -111,11 +97,11 @@ dependencies:
|
|
111
97
|
- 0
|
112
98
|
version: 3.0.0
|
113
99
|
type: :runtime
|
114
|
-
version_requirements: *
|
100
|
+
version_requirements: *id005
|
115
101
|
- !ruby/object:Gem::Dependency
|
116
102
|
name: mail
|
117
103
|
prerelease: false
|
118
|
-
requirement: &
|
104
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
119
105
|
none: false
|
120
106
|
requirements:
|
121
107
|
- - ">="
|
@@ -125,11 +111,11 @@ dependencies:
|
|
125
111
|
- 0
|
126
112
|
version: "0"
|
127
113
|
type: :runtime
|
128
|
-
version_requirements: *
|
114
|
+
version_requirements: *id006
|
129
115
|
- !ruby/object:Gem::Dependency
|
130
116
|
name: date_validator
|
131
117
|
prerelease: false
|
132
|
-
requirement: &
|
118
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
133
119
|
none: false
|
134
120
|
requirements:
|
135
121
|
- - ">="
|
@@ -139,7 +125,7 @@ dependencies:
|
|
139
125
|
- 0
|
140
126
|
version: "0"
|
141
127
|
type: :runtime
|
142
|
-
version_requirements: *
|
128
|
+
version_requirements: *id007
|
143
129
|
description: ActiveValidators is a collection of ActiveModel/ActiveRecord validations
|
144
130
|
email:
|
145
131
|
- franck@verrot.fr
|