date_validator 0.4.0 → 0.4.1
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.rdoc +2 -0
- data/VERSION +1 -1
- data/date_validator.gemspec +5 -4
- data/lib/date_validator.rb +7 -3
- data/spec/date_validator_spec.rb +11 -1
- data/spec/spec.opts +0 -2
- metadata +3 -3
data/README.rdoc
CHANGED
@@ -20,6 +20,8 @@ Pretty much self-explanatory! :) And if you like remarkable, just install this g
|
|
20
20
|
|
21
21
|
gem install remarkable_date_validator
|
22
22
|
|
23
|
+
(source on http://github.com/codegram/remarkable_date_validator/)
|
24
|
+
|
23
25
|
== Note on Patches/Pull Requests
|
24
26
|
|
25
27
|
* Fork the project.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.4.
|
1
|
+
0.4.1
|
data/date_validator.gemspec
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{date_validator}
|
8
|
-
s.version = "0.4.
|
8
|
+
s.version = "0.4.1"
|
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\302\252 Bach", "Josep Jaume Rey"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-05-14}
|
13
13
|
s.description = %q{A simple date validator for Rails 3. Currently supporting :after, :before, :after_or_equal_to and :before_or_equal_to options. Remarkable-friendly :)}
|
14
14
|
s.email = %q{info@codegram.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -56,3 +56,4 @@ Gem::Specification.new do |s|
|
|
56
56
|
s.add_dependency(%q<rspec>, [">= 0"])
|
57
57
|
end
|
58
58
|
end
|
59
|
+
|
data/lib/date_validator.rb
CHANGED
@@ -11,7 +11,7 @@ module ActiveModel
|
|
11
11
|
def check_validity!
|
12
12
|
keys = CHECKS.keys
|
13
13
|
options.slice(*keys).each do |option, value|
|
14
|
-
next if
|
14
|
+
next if is_time?(value) || value.is_a?(Proc) || value.is_a?(Symbol)
|
15
15
|
raise ArgumentError, ":#{option} must be a time, a date, a symbol or a proc"
|
16
16
|
end
|
17
17
|
end
|
@@ -29,10 +29,14 @@ module ActiveModel
|
|
29
29
|
option_value = option_value.call(record) if option_value.is_a?(Proc)
|
30
30
|
option_value = record.send(option_value) if option_value.is_a?(Symbol)
|
31
31
|
|
32
|
-
unless value.send(CHECKS[option], option_value)
|
32
|
+
unless is_time?(option_value) && value.send(CHECKS[option], option_value)
|
33
33
|
record.errors.add(attr_name, option, :default => options[:message], :value => value, :date => option_value)
|
34
34
|
end
|
35
|
-
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def is_time?(object)
|
39
|
+
object.is_a?(Time) || (defined?(Date) and object.is_a?(Date))
|
36
40
|
end
|
37
41
|
|
38
42
|
module ClassMethods
|
data/spec/date_validator_spec.rb
CHANGED
@@ -53,8 +53,18 @@ describe "DateValidator" do
|
|
53
53
|
end
|
54
54
|
# when :date then
|
55
55
|
# TestRecord.validates :expiration_date, :date => {:after => Time.now.to_date}
|
56
|
-
end
|
56
|
+
end
|
57
57
|
end
|
58
58
|
end
|
59
59
|
|
60
|
+
it "should gracefully handle an unexpected result from a proc argument evaluation" do
|
61
|
+
TestRecord.validates :expiration_date, :date => {:after => Proc.new{ nil }}
|
62
|
+
TestRecord.new(Time.now).valid?.should be_false
|
63
|
+
end
|
64
|
+
|
65
|
+
it "should gracefully handle an unexpected result from a symbol argument evaluation" do
|
66
|
+
TestRecord.send(:define_method, :min_date, lambda { nil })
|
67
|
+
TestRecord.validates :expiration_date, :date => {:after => :min_date}
|
68
|
+
TestRecord.new(Time.now).valid?.should be_false
|
69
|
+
end
|
60
70
|
end
|
data/spec/spec.opts
CHANGED
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 4
|
8
|
-
-
|
9
|
-
version: 0.4.
|
8
|
+
- 1
|
9
|
+
version: 0.4.1
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Oriol Gual
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2010-
|
19
|
+
date: 2010-05-14 00:00:00 +02:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|