reluctantly overriding whole execute_callstack_for_multiparameter_attributes method

this fixes issue for Date column types. Damn method is just too
unwieldly and should be refactored in Rails.
This commit is contained in:
Adam Meehan
2010-12-04 16:29:05 +11:00
parent bfcab52c22
commit 3bf364a395
2 changed files with 72 additions and 22 deletions

View File

@@ -3,19 +3,31 @@ require 'spec_helper'
describe ValidatesTimeliness::Extensions::MultiparameterHandler do
let(:employee) { Employee.new }
it 'should return string value for invalid dates' do
instantiate_time_object('birth_date', [2000, 2, 31]).should == '2000-02-31'
context "time column" do
it 'should return string value for invalid date portion' do
multiparameter_attribute(:birth_datetime, [2000, 2, 31, 12, 0, 0])
employee.birth_datetime_before_type_cast.should == '2000-02-31 12:00:00'
end
it 'should return Time value for valid datetimes' do
multiparameter_attribute(:birth_datetime, [2000, 2, 28, 12, 0, 0])
employee.birth_datetime_before_type_cast.should be_kind_of(Time)
end
end
it 'should return string value for invalid datetimes' do
instantiate_time_object('birth_datetime', [2000, 2, 31, 12, 0, 0]).should == '2000-02-31 12:00:00'
end
it 'should return Time value for valid datetimes' do
instantiate_time_object('birth_datetime', [2000, 2, 28, 12, 0, 0]).should be_kind_of(Time)
context "date column" do
it 'should return string value for invalid date' do
multiparameter_attribute(:birth_date, [2000, 2, 31])
employee.birth_date_before_type_cast.should == '2000-02-31'
end
it 'should return Date value for valid date' do
multiparameter_attribute(:birth_date, [2000, 2, 28])
employee.birth_date_before_type_cast.should be_kind_of(Date)
end
end
def instantiate_time_object(name, values)
employee.send(:instantiate_time_object, name, values)
def multiparameter_attribute(name, values)
employee.send(:execute_callstack_for_multiparameter_attributes, name.to_s => values)
end
end