moved attribute methods modules into Old and New for rails versions

This commit is contained in:
Adam Meehan
2008-05-05 09:11:43 +10:00
parent 9a8a82c699
commit 05a2d53b9a

View File

@@ -16,14 +16,15 @@ module ValidatesTimeliness
def self.included(base) def self.included(base)
if ActiveRecord::VERSION::STRING < '2.1' if ActiveRecord::VERSION::STRING < '2.1'
base.extend ClassMethodsOld base.extend ClassMethods::Old
else else
base.extend ClassMethodsNew base.extend ClassMethods::New
end end
end end
module ClassMethods
# ActiveRecord >= 2.1 # ActiveRecord >= 2.1
module ClassMethodsNew module New
def define_read_method_for_time_zone_conversion(attr_name) def define_read_method_for_time_zone_conversion(attr_name)
method_body = <<-EOV method_body = <<-EOV
def #{attr_name}(reload = false) def #{attr_name}(reload = false)
@@ -54,10 +55,10 @@ module ValidatesTimeliness
EOV EOV
evaluate_attribute_method attr_name, method_body, "#{attr_name}=" evaluate_attribute_method attr_name, method_body, "#{attr_name}="
end end
end end # New
# ActiveRecord < 2.1 # ActiveRecord < 2.1
module ClassMethodsOld module Old
def define_attribute_methods def define_attribute_methods
return if generated_methods? return if generated_methods?
columns_hash.each do |name, column| columns_hash.each do |name, column|
@@ -99,7 +100,8 @@ module ValidatesTimeliness
EOV EOV
evaluate_attribute_method attr_name, method_body evaluate_attribute_method attr_name, method_body
end end
end end # Old
end # ClassMethods
end end
end end