date_validator 0.5.8 → 0.5.9
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/.rvmrc +1 -0
- data/Gemfile +3 -1
- data/Gemfile.lock +25 -9
- data/README.rdoc +3 -2
- data/VERSION +1 -1
- data/date_validator.gemspec +5 -4
- data/lib/date_validator.rb +0 -8
- data/spec/date_validator_spec.rb +14 -7
- data/spec/spec_helper.rb +4 -1
- metadata +12 -4
data/.rvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm --create use ruby-1.9.2@date_validator > /dev/null
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -8,16 +8,30 @@ GEM
|
|
8
8
|
activesupport (3.0.0)
|
9
9
|
builder (2.1.2)
|
10
10
|
diff-lcs (1.1.2)
|
11
|
+
gemcutter (0.6.1)
|
12
|
+
git (1.2.5)
|
11
13
|
i18n (0.4.1)
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
rspec
|
14
|
+
jeweler (1.4.0)
|
15
|
+
gemcutter (>= 0.1.0)
|
16
|
+
git (>= 1.2.5)
|
17
|
+
rubyforge (>= 2.0.0)
|
18
|
+
json_pure (1.4.6)
|
19
|
+
rspec (2.0.0)
|
20
|
+
rspec-core (= 2.0.0)
|
21
|
+
rspec-expectations (= 2.0.0)
|
22
|
+
rspec-mocks (= 2.0.0)
|
23
|
+
rspec-core (2.0.0)
|
24
|
+
rspec-expectations (2.0.0)
|
18
25
|
diff-lcs (>= 1.1.2)
|
19
|
-
rspec-mocks (2.0.0
|
20
|
-
|
26
|
+
rspec-mocks (2.0.0)
|
27
|
+
rspec-core (= 2.0.0)
|
28
|
+
rspec-expectations (= 2.0.0)
|
29
|
+
rubyforge (2.0.4)
|
30
|
+
json_pure (>= 1.1.7)
|
31
|
+
simplecov (0.3.6)
|
32
|
+
simplecov-html (>= 0.3.7)
|
33
|
+
simplecov-html (0.3.8)
|
34
|
+
tzinfo (0.3.23)
|
21
35
|
|
22
36
|
PLATFORMS
|
23
37
|
java
|
@@ -26,5 +40,7 @@ PLATFORMS
|
|
26
40
|
DEPENDENCIES
|
27
41
|
activemodel (= 3.0.0)
|
28
42
|
activesupport (= 3.0.0)
|
29
|
-
|
43
|
+
jeweler
|
44
|
+
rspec (= 2.0.0)
|
45
|
+
simplecov
|
30
46
|
tzinfo
|
data/README.rdoc
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
= date_validator
|
2
2
|
|
3
|
-
A simple date validator for Rails 3.
|
3
|
+
A simple date validator for Rails 3. Compatible with Ruby 1.8, 1.9, JRuby 1.5.3
|
4
|
+
and Rubinius 1.1.
|
4
5
|
|
5
6
|
gem sources -a http://gemcutter.org/
|
6
7
|
gem install date_validator
|
@@ -8,7 +9,7 @@ A simple date validator for Rails 3.
|
|
8
9
|
And I mean simple. In your model:
|
9
10
|
|
10
11
|
validates :expiration_date, :date => {:after => lambda { Time.now } :before => lambda { Time.now + 1.year } }
|
11
|
-
Using lambda prevents production cache issues
|
12
|
+
# Using lambda prevents production cache issues
|
12
13
|
|
13
14
|
For now these are the available options you can use:
|
14
15
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.5.
|
1
|
+
0.5.9
|
data/date_validator.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{date_validator}
|
8
|
-
s.version = "0.5.
|
8
|
+
s.version = "0.5.9"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Oriol Gual", "Josep M. Bach", "Josep Jaume Rey"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-10-14}
|
13
13
|
s.description = %q{A simple, ORM agnostic, Ruby 1.9 compatible date validator for Rails 3, based on ActiveModel. Currently supporting :after, :before, :after_or_equal_to and :before_or_equal_to options.}
|
14
14
|
s.email = %q{info@codegram.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -21,6 +21,7 @@ Gem::Specification.new do |s|
|
|
21
21
|
".document",
|
22
22
|
".gitignore",
|
23
23
|
".rspec",
|
24
|
+
".rvmrc",
|
24
25
|
"Gemfile",
|
25
26
|
"Gemfile.lock",
|
26
27
|
"LICENSE",
|
@@ -38,7 +39,7 @@ Gem::Specification.new do |s|
|
|
38
39
|
s.homepage = %q{http://github.com/codegram/date_validator}
|
39
40
|
s.rdoc_options = ["--charset=UTF-8"]
|
40
41
|
s.require_paths = ["lib"]
|
41
|
-
s.rubygems_version = %q{1.3.
|
42
|
+
s.rubygems_version = %q{1.3.7}
|
42
43
|
s.summary = %q{A simple, ORM agnostic, Ruby 1.9 compatible date validator for Rails 3, based on ActiveModel.}
|
43
44
|
s.test_files = [
|
44
45
|
"spec/date_validator_spec.rb",
|
@@ -49,7 +50,7 @@ Gem::Specification.new do |s|
|
|
49
50
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
50
51
|
s.specification_version = 3
|
51
52
|
|
52
|
-
if Gem::Version.new(Gem::
|
53
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
53
54
|
s.add_runtime_dependency(%q<activemodel>, [">= 3.0.0"])
|
54
55
|
s.add_development_dependency(%q<rspec>, [">= 2.0.0.beta.20"])
|
55
56
|
s.add_development_dependency(%q<activesupport>, [">= 3.0.0"])
|
data/lib/date_validator.rb
CHANGED
@@ -56,14 +56,6 @@ module ActiveModel
|
|
56
56
|
object.is_a?(Time) || (defined?(Date) and object.is_a?(Date)) || (defined?(ActiveSupport::TimeWithZone) and object.is_a?(ActiveSupport::TimeWithZone))
|
57
57
|
end
|
58
58
|
|
59
|
-
module ClassMethods
|
60
|
-
|
61
|
-
def validates_date_of(*attr_names)
|
62
|
-
validates_with DateValidator, _merge_attributes(attr_names)
|
63
|
-
end
|
64
|
-
|
65
|
-
end
|
66
|
-
|
67
59
|
end
|
68
60
|
end
|
69
61
|
end
|
data/spec/date_validator_spec.rb
CHANGED
@@ -8,7 +8,7 @@ describe "DateValidator" do
|
|
8
8
|
TestRecord.reset_callbacks(:validate)
|
9
9
|
end
|
10
10
|
|
11
|
-
it "
|
11
|
+
it "checks validity of the arguments" do
|
12
12
|
[3, "foo", 1..6].each do |wrong_argument|
|
13
13
|
expect {
|
14
14
|
TestRecord.validates :expiration_date, :date => {:before => wrong_argument}
|
@@ -16,6 +16,13 @@ describe "DateValidator" do
|
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
|
+
it "complains if provided with no options" do
|
20
|
+
TestRecord.validates :expiration_date, :date => {:before => Time.now}
|
21
|
+
model = TestRecord.new(nil)
|
22
|
+
model.should_not be_valid
|
23
|
+
model.errors[:expiration_date].should == ["is not a date"]
|
24
|
+
end
|
25
|
+
|
19
26
|
[:valid,:invalid].each do |should_be|
|
20
27
|
|
21
28
|
_context = should_be == :valid ? 'when value validates correctly' : 'when value does not match validation requirements'
|
@@ -33,7 +40,7 @@ describe "DateValidator" do
|
|
33
40
|
when :before_or_equal_to then should_be == :valid ? now : now + 21000
|
34
41
|
end
|
35
42
|
|
36
|
-
it "
|
43
|
+
it "ensures that an attribute is #{should_be} when #{should_be == :valid ? 'respecting' : 'offending' } the #{check} check" do
|
37
44
|
TestRecord.validates :expiration_date, :date => {:"#{check}" => Time.now}
|
38
45
|
model = TestRecord.new(model_date)
|
39
46
|
should_be == :valid ? model.should(be_valid, "an attribute should be valid when respecting the #{check} check") : model.should_not(be_valid, "an attribute should be invalidwhen offending the #{check} check")
|
@@ -41,7 +48,7 @@ describe "DateValidator" do
|
|
41
48
|
|
42
49
|
if _context == 'when value does not match validation requirements'
|
43
50
|
|
44
|
-
it "
|
51
|
+
it "yields a default error message indicating that value must be #{check} validation requirements" do
|
45
52
|
TestRecord.validates :expiration_date, :date => {:"#{check}" => Time.now}
|
46
53
|
model = TestRecord.new(model_date)
|
47
54
|
model.should_not be_valid
|
@@ -54,7 +61,7 @@ describe "DateValidator" do
|
|
54
61
|
|
55
62
|
if _context == 'when value does not match validation requirements'
|
56
63
|
|
57
|
-
it "
|
64
|
+
it "allows for a custom validation message" do
|
58
65
|
TestRecord.validates :expiration_date, :date => {:before_or_equal_to => Time.now, :message => 'must be after Christmas'}
|
59
66
|
model = TestRecord.new(Time.now + 21000)
|
60
67
|
model.should_not be_valid
|
@@ -72,7 +79,7 @@ describe "DateValidator" do
|
|
72
79
|
extra_types.push(:time_with_zone) if defined?(ActiveSupport::TimeWithZone)
|
73
80
|
|
74
81
|
extra_types.each do |type|
|
75
|
-
it "
|
82
|
+
it "accepts a #{type} as an argument to a check" do
|
76
83
|
case type
|
77
84
|
when :proc then
|
78
85
|
expect {
|
@@ -96,12 +103,12 @@ describe "DateValidator" do
|
|
96
103
|
end
|
97
104
|
end
|
98
105
|
|
99
|
-
it "
|
106
|
+
it "gracefully handles an unexpected result from a proc argument evaluation" do
|
100
107
|
TestRecord.validates :expiration_date, :date => {:after => Proc.new{ nil }}
|
101
108
|
TestRecord.new(Time.now).should_not be_valid
|
102
109
|
end
|
103
110
|
|
104
|
-
it "
|
111
|
+
it "gracefully handles an unexpected result from a symbol argument evaluation" do
|
105
112
|
TestRecord.send(:define_method, :min_date, lambda { nil })
|
106
113
|
TestRecord.validates :expiration_date, :date => {:after => :min_date}
|
107
114
|
TestRecord.new(Time.now).should_not be_valid
|
data/spec/spec_helper.rb
CHANGED
@@ -1,12 +1,15 @@
|
|
1
1
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
2
2
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
3
|
+
require 'simplecov'
|
4
|
+
SimpleCov.start do
|
5
|
+
add_group "Lib", "lib"
|
6
|
+
end
|
3
7
|
|
4
8
|
require 'rubygems'
|
5
9
|
require 'active_model'
|
6
10
|
|
7
11
|
require 'date_validator'
|
8
12
|
require 'rspec'
|
9
|
-
require 'rspec/autorun'
|
10
13
|
|
11
14
|
I18n.load_path += Dir[File.join('locales', '*.{rb,yml}')]
|
12
15
|
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 5
|
8
|
-
-
|
9
|
-
version: 0.5.
|
8
|
+
- 9
|
9
|
+
version: 0.5.9
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Oriol Gual
|
@@ -16,13 +16,14 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2010-
|
19
|
+
date: 2010-10-14 00:00:00 +02:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
23
23
|
name: activemodel
|
24
24
|
prerelease: false
|
25
25
|
requirement: &id001 !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
26
27
|
requirements:
|
27
28
|
- - ">="
|
28
29
|
- !ruby/object:Gem::Version
|
@@ -37,6 +38,7 @@ dependencies:
|
|
37
38
|
name: rspec
|
38
39
|
prerelease: false
|
39
40
|
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
40
42
|
requirements:
|
41
43
|
- - ">="
|
42
44
|
- !ruby/object:Gem::Version
|
@@ -53,6 +55,7 @@ dependencies:
|
|
53
55
|
name: activesupport
|
54
56
|
prerelease: false
|
55
57
|
requirement: &id003 !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
56
59
|
requirements:
|
57
60
|
- - ">="
|
58
61
|
- !ruby/object:Gem::Version
|
@@ -67,6 +70,7 @@ dependencies:
|
|
67
70
|
name: bundler
|
68
71
|
prerelease: false
|
69
72
|
requirement: &id004 !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
70
74
|
requirements:
|
71
75
|
- - ">="
|
72
76
|
- !ruby/object:Gem::Version
|
@@ -81,6 +85,7 @@ dependencies:
|
|
81
85
|
name: tzinfo
|
82
86
|
prerelease: false
|
83
87
|
requirement: &id005 !ruby/object:Gem::Requirement
|
88
|
+
none: false
|
84
89
|
requirements:
|
85
90
|
- - ">="
|
86
91
|
- !ruby/object:Gem::Version
|
@@ -103,6 +108,7 @@ files:
|
|
103
108
|
- .document
|
104
109
|
- .gitignore
|
105
110
|
- .rspec
|
111
|
+
- .rvmrc
|
106
112
|
- Gemfile
|
107
113
|
- Gemfile.lock
|
108
114
|
- LICENSE
|
@@ -126,6 +132,7 @@ rdoc_options:
|
|
126
132
|
require_paths:
|
127
133
|
- lib
|
128
134
|
required_ruby_version: !ruby/object:Gem::Requirement
|
135
|
+
none: false
|
129
136
|
requirements:
|
130
137
|
- - ">="
|
131
138
|
- !ruby/object:Gem::Version
|
@@ -133,6 +140,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
133
140
|
- 0
|
134
141
|
version: "0"
|
135
142
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
143
|
+
none: false
|
136
144
|
requirements:
|
137
145
|
- - ">="
|
138
146
|
- !ruby/object:Gem::Version
|
@@ -142,7 +150,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
142
150
|
requirements: []
|
143
151
|
|
144
152
|
rubyforge_project:
|
145
|
-
rubygems_version: 1.3.
|
153
|
+
rubygems_version: 1.3.7
|
146
154
|
signing_key:
|
147
155
|
specification_version: 3
|
148
156
|
summary: A simple, ORM agnostic, Ruby 1.9 compatible date validator for Rails 3, based on ActiveModel.
|