From 70b16b875c95516a68cd4b7754a67475e7deec45 Mon Sep 17 00:00:00 2001 From: Adam Meehan Date: Sun, 1 Aug 2010 20:54:50 +1000 Subject: [PATCH] :between option fix and spec --- lib/validates_timeliness/validator.rb | 2 +- spec/validates_timeliness/validator_spec.rb | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/lib/validates_timeliness/validator.rb b/lib/validates_timeliness/validator.rb index f76bdfb..945a4f6 100644 --- a/lib/validates_timeliness/validator.rb +++ b/lib/validates_timeliness/validator.rb @@ -22,7 +22,7 @@ module ValidatesTimeliness if range = options.delete(:between) raise ArgumentError, ":between must be a Range or an Array" unless range.is_a?(Range) || range.is_a?(Array) - options[:on_or_after], options[:on_or_before] = range.begin, range.end + options[:on_or_after], options[:on_or_before] = range.first, range.last end super end diff --git a/spec/validates_timeliness/validator_spec.rb b/spec/validates_timeliness/validator_spec.rb index e1ccba5..fa20ffe 100644 --- a/spec/validates_timeliness/validator_spec.rb +++ b/spec/validates_timeliness/validator_spec.rb @@ -46,4 +46,24 @@ describe ValidatesTimeliness::Validator do valid!(:birth_date, '') end end + + describe ":between option" do + describe "array value" do + it 'should be split option into :on_or_after and :on_or_before values' do + on_or_after, on_or_before = Date.new(2010,1,1), Date.new(2010,1,2) + Person.validates_time :birth_date, :between => [on_or_after, on_or_before] + Person.validators.first.options[:on_or_after].should == on_or_after + Person.validators.first.options[:on_or_before].should == on_or_before + end + end + + describe "range value" do + it 'should be split option into :on_or_after and :on_or_before values' do + on_or_after, on_or_before = Date.new(2010,1,1), Date.new(2010,1,2) + Person.validates_time :birth_date, :between => on_or_after..on_or_before + Person.validators.first.options[:on_or_after].should == on_or_after + Person.validators.first.options[:on_or_before].should == on_or_before + end + end + end end