mirror of
https://github.com/ditkrg/validates_timeliness.git
synced 2026-01-24 23:06:42 +00:00
fix generated_methods bug where read instead of write method stored
existing spec failed unless run alone as attribute methods already primed. fixed spec to undef method and empty generated_methods set
This commit is contained in:
parent
694c3b0ce3
commit
59d9957ab6
@ -51,10 +51,11 @@ module ValidatesTimeliness
|
|||||||
if [:date, :time, :datetime].include?(column.type)
|
if [:date, :time, :datetime].include?(column.type)
|
||||||
time_zone_aware = create_time_zone_conversion_attribute?(name, column) rescue false
|
time_zone_aware = create_time_zone_conversion_attribute?(name, column) rescue false
|
||||||
|
|
||||||
define_method("#{name}=") do |value|
|
method_name = "#{name}="
|
||||||
|
define_method(method_name) do |value|
|
||||||
write_date_time_attribute(name, value, column.type, time_zone_aware)
|
write_date_time_attribute(name, value, column.type, time_zone_aware)
|
||||||
end
|
end
|
||||||
timeliness_methods << name
|
timeliness_methods << method_name
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@ -5,7 +5,9 @@ describe ValidatesTimeliness::ActiveRecord::AttributeMethods do
|
|||||||
@person = Person.new
|
@person = Person.new
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should call write_date_time_attribute when date attribute assigned value" do
|
it "should define and call write method on first assign" do
|
||||||
|
Person.class_eval { @generated_methods = Set.new }
|
||||||
|
Person.send(:undef_method, :birth_date=)
|
||||||
@person.should_receive(:write_date_time_attribute)
|
@person.should_receive(:write_date_time_attribute)
|
||||||
@person.birth_date = "2000-01-01"
|
@person.birth_date = "2000-01-01"
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user