From 5885290304b3d10dd70cc60b4c7f4b1cd3ef0fbd Mon Sep 17 00:00:00 2001 From: Adam Meehan Date: Tue, 22 Jul 2008 12:59:37 +1000 Subject: [PATCH] added back Rails 2.1 check for time zone conversion attribute in define_attributes_methods and check for Rails 2.0 to return true if Time class column --- lib/validates_timeliness/attribute_methods.rb | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/validates_timeliness/attribute_methods.rb b/lib/validates_timeliness/attribute_methods.rb index df859b6..dfcbc1e 100644 --- a/lib/validates_timeliness/attribute_methods.rb +++ b/lib/validates_timeliness/attribute_methods.rb @@ -26,6 +26,16 @@ module ValidatesTimeliness def self.included(base) base.extend ClassMethods + + if Rails::VERSION::STRING < '2.1' + base.class_eval do + class << self + def create_time_zone_conversion_attribute?(name, column) + column.klass == Time + end + end + end + end end # Handles timezone shift if Rails 2.1 @@ -66,7 +76,7 @@ module ValidatesTimeliness unless instance_method_already_implemented?(name) if self.serialized_attributes[name] define_read_method_for_serialized_attribute(name) - elsif column.klass == Time + elsif create_time_zone_conversion_attribute?(name, column) define_read_method_for_time_zone_conversion(name.to_sym) else define_read_method(name.to_sym, name, column) @@ -74,7 +84,7 @@ module ValidatesTimeliness end unless instance_method_already_implemented?("#{name}=") - if column.klass == Time + if create_time_zone_conversion_attribute?(name, column) define_write_method_for_time_zone_conversion(name.to_sym) elsif column.klass == Date define_write_method_for_date(name.to_sym)