date_validator 0.6.3 → 0.6.4
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 +7 -0
- data/.rvmrc +1 -1
- data/.travis.yml +5 -5
- data/date_validator.gemspec +3 -3
- data/lib/active_model/validations/date_validator.rb +24 -1
- data/lib/date_validator/version.rb +1 -1
- data/locales/de.yml +8 -0
- data/locales/fr.yml +11 -0
- data/test/date_validator_test.rb +16 -0
- metadata +47 -32
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: ad328bfcd91fe2dd14dffada0d846bbc8098de12
|
4
|
+
data.tar.gz: ca2397f4635d7f6ca4fc7e13430de2138ac1df41
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 5dbb18aba6310ee0846aeec876f46b98d53b1ee96a75037e2f285055e1948647e74a5c5bb1f60af11d75ad08d8690948634f6f25506a7b97b7d21ddb43bf6f41
|
7
|
+
data.tar.gz: 46a423f1e6dd42f08e5fadb1d1a42cd440ee308025679e562f316a55f9b873cabec519e1705d90a04efbc0b9734ea8ae8a0a9a8635a9b60d9fedb1500acd0d9d
|
data/.rvmrc
CHANGED
@@ -1 +1 @@
|
|
1
|
-
rvm use ruby-
|
1
|
+
rvm use ruby-2.0.0@date_validator --create
|
data/.travis.yml
CHANGED
data/date_validator.gemspec
CHANGED
@@ -14,12 +14,12 @@ Gem::Specification.new do |s|
|
|
14
14
|
|
15
15
|
s.rubyforge_project = "date_validator"
|
16
16
|
|
17
|
-
s.add_runtime_dependency 'activemodel',
|
17
|
+
s.add_runtime_dependency 'activemodel', '>= 3'
|
18
18
|
|
19
19
|
s.add_development_dependency 'minitest'
|
20
20
|
s.add_development_dependency 'rake'
|
21
|
-
s.add_development_dependency 'activesupport'
|
22
|
-
s.add_development_dependency 'tzinfo'
|
21
|
+
s.add_development_dependency 'activesupport'
|
22
|
+
s.add_development_dependency 'tzinfo'
|
23
23
|
|
24
24
|
s.files = `git ls-files`.split("\n")
|
25
25
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
@@ -33,10 +33,33 @@ module ActiveModel
|
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
36
|
+
# Overridden because standard allow_nil and allow_blank checks don't work with
|
37
|
+
# string expressions that cannot be type cast to dates. We have to validate
|
38
|
+
# the pre-type cast values.
|
39
|
+
def validate(record)
|
40
|
+
attributes.each do |attribute|
|
41
|
+
value = record.read_attribute_for_validation(attribute)
|
42
|
+
validate_each(record, attribute, value)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
36
46
|
# The actual validator method. It is called when ActiveRecord iterates
|
37
47
|
# over all the validators.
|
38
48
|
def validate_each(record, attr_name, value)
|
39
|
-
|
49
|
+
before_type_cast = :"#{attr_name}_before_type_cast"
|
50
|
+
|
51
|
+
value_before_type_cast = if record.respond_to?(before_type_cast)
|
52
|
+
record.send(before_type_cast)
|
53
|
+
else
|
54
|
+
nil
|
55
|
+
end
|
56
|
+
|
57
|
+
if value_before_type_cast.present? && value.nil?
|
58
|
+
record.errors.add(attr_name, :not_a_date, options)
|
59
|
+
return
|
60
|
+
end
|
61
|
+
|
62
|
+
return if (value.nil? && options[:allow_nil]) || (value.blank? && options[:allow_blank])
|
40
63
|
|
41
64
|
unless value
|
42
65
|
record.errors.add(attr_name, :not_a_date, options)
|
data/locales/de.yml
ADDED
data/locales/fr.yml
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
# Sample localization file for English. Add more files in this directory for other locales.
|
2
|
+
# See http://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
|
3
|
+
|
4
|
+
fr:
|
5
|
+
errors:
|
6
|
+
messages:
|
7
|
+
not_a_date: "n'est pas une date"
|
8
|
+
after: "doit être après %{date}"
|
9
|
+
after_or_equal_to: "doit être supérieur ou égal à %{date}"
|
10
|
+
before: "doit être avant %{date}"
|
11
|
+
before_or_equal_to: "doit être inférieur ou égal à %{date}"
|
data/test/date_validator_test.rb
CHANGED
@@ -131,6 +131,22 @@ module ActiveModel
|
|
131
131
|
|
132
132
|
TestRecord.new(Time.now).valid?.must_equal false
|
133
133
|
end
|
134
|
+
|
135
|
+
describe "with type cast attributes" do
|
136
|
+
before do
|
137
|
+
TestRecord.send(:define_method, :expiration_date_before_type_cast, lambda { 'last year' })
|
138
|
+
end
|
139
|
+
|
140
|
+
it "should detect invalid date expressions when nil is allowed" do
|
141
|
+
TestRecord.validates(:expiration_date, :date => true, :allow_nil => true)
|
142
|
+
TestRecord.new(nil).valid?.must_equal false
|
143
|
+
end
|
144
|
+
|
145
|
+
it "should detect invalid date expressions when blank is allowed" do
|
146
|
+
TestRecord.validates(:expiration_date, :date => true, :allow_blank => true)
|
147
|
+
TestRecord.new(nil).valid?.must_equal false
|
148
|
+
end
|
149
|
+
end
|
134
150
|
end
|
135
151
|
|
136
152
|
end
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: date_validator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
5
|
-
prerelease:
|
4
|
+
version: 0.6.4
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Oriol Gual
|
@@ -11,63 +10,78 @@ authors:
|
|
11
10
|
autorequire:
|
12
11
|
bindir: bin
|
13
12
|
cert_chain: []
|
14
|
-
date:
|
13
|
+
date: 2013-03-29 00:00:00.000000000 Z
|
15
14
|
dependencies:
|
16
15
|
- !ruby/object:Gem::Dependency
|
17
16
|
name: activemodel
|
18
|
-
requirement:
|
19
|
-
none: false
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
20
18
|
requirements:
|
21
|
-
- -
|
19
|
+
- - '>='
|
22
20
|
- !ruby/object:Gem::Version
|
23
|
-
version: '3
|
21
|
+
version: '3'
|
24
22
|
type: :runtime
|
25
23
|
prerelease: false
|
26
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
requirements:
|
26
|
+
- - '>='
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
version: '3'
|
27
29
|
- !ruby/object:Gem::Dependency
|
28
30
|
name: minitest
|
29
|
-
requirement:
|
30
|
-
none: false
|
31
|
+
requirement: !ruby/object:Gem::Requirement
|
31
32
|
requirements:
|
32
|
-
- -
|
33
|
+
- - '>='
|
33
34
|
- !ruby/object:Gem::Version
|
34
35
|
version: '0'
|
35
36
|
type: :development
|
36
37
|
prerelease: false
|
37
|
-
version_requirements:
|
38
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - '>='
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '0'
|
38
43
|
- !ruby/object:Gem::Dependency
|
39
44
|
name: rake
|
40
|
-
requirement:
|
41
|
-
none: false
|
45
|
+
requirement: !ruby/object:Gem::Requirement
|
42
46
|
requirements:
|
43
|
-
- -
|
47
|
+
- - '>='
|
44
48
|
- !ruby/object:Gem::Version
|
45
49
|
version: '0'
|
46
50
|
type: :development
|
47
51
|
prerelease: false
|
48
|
-
version_requirements:
|
52
|
+
version_requirements: !ruby/object:Gem::Requirement
|
53
|
+
requirements:
|
54
|
+
- - '>='
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '0'
|
49
57
|
- !ruby/object:Gem::Dependency
|
50
58
|
name: activesupport
|
51
|
-
requirement:
|
52
|
-
none: false
|
59
|
+
requirement: !ruby/object:Gem::Requirement
|
53
60
|
requirements:
|
54
|
-
- -
|
61
|
+
- - '>='
|
55
62
|
- !ruby/object:Gem::Version
|
56
|
-
version: '
|
63
|
+
version: '0'
|
57
64
|
type: :development
|
58
65
|
prerelease: false
|
59
|
-
version_requirements:
|
66
|
+
version_requirements: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - '>='
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '0'
|
60
71
|
- !ruby/object:Gem::Dependency
|
61
72
|
name: tzinfo
|
62
|
-
requirement:
|
63
|
-
none: false
|
73
|
+
requirement: !ruby/object:Gem::Requirement
|
64
74
|
requirements:
|
65
|
-
- -
|
75
|
+
- - '>='
|
66
76
|
- !ruby/object:Gem::Version
|
67
|
-
version: 0
|
77
|
+
version: '0'
|
68
78
|
type: :development
|
69
79
|
prerelease: false
|
70
|
-
version_requirements:
|
80
|
+
version_requirements: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - '>='
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: '0'
|
71
85
|
description: A simple, ORM agnostic, Ruby 1.9 compatible date validator for Rails
|
72
86
|
3, based on ActiveModel. Currently supporting :after, :before, :after_or_equal_to
|
73
87
|
and :before_or_equal_to options.
|
@@ -92,35 +106,36 @@ files:
|
|
92
106
|
- lib/date_validator.rb
|
93
107
|
- lib/date_validator/version.rb
|
94
108
|
- locales/ca.yml
|
109
|
+
- locales/de.yml
|
95
110
|
- locales/en.yml
|
96
111
|
- locales/es.yml
|
112
|
+
- locales/fr.yml
|
97
113
|
- locales/nl.yml
|
98
114
|
- locales/ru.yml
|
99
115
|
- test/date_validator_test.rb
|
100
116
|
- test/test_helper.rb
|
101
117
|
homepage: http://github.com/codegram/date_validator
|
102
118
|
licenses: []
|
119
|
+
metadata: {}
|
103
120
|
post_install_message:
|
104
121
|
rdoc_options: []
|
105
122
|
require_paths:
|
106
123
|
- lib
|
107
124
|
required_ruby_version: !ruby/object:Gem::Requirement
|
108
|
-
none: false
|
109
125
|
requirements:
|
110
|
-
- -
|
126
|
+
- - '>='
|
111
127
|
- !ruby/object:Gem::Version
|
112
128
|
version: '0'
|
113
129
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
114
|
-
none: false
|
115
130
|
requirements:
|
116
|
-
- -
|
131
|
+
- - '>='
|
117
132
|
- !ruby/object:Gem::Version
|
118
133
|
version: '0'
|
119
134
|
requirements: []
|
120
135
|
rubyforge_project: date_validator
|
121
|
-
rubygems_version:
|
136
|
+
rubygems_version: 2.0.0
|
122
137
|
signing_key:
|
123
|
-
specification_version:
|
138
|
+
specification_version: 4
|
124
139
|
summary: A simple, ORM agnostic, Ruby 1.9 compatible date validator for Rails 3, based
|
125
140
|
on ActiveModel.
|
126
141
|
test_files:
|