Move attribute_types_cached_by_default into attribute methods reading concern

This commit is contained in:
Joshua Peek
2009-07-30 14:26:08 -05:00
parent 89e9efcbe2
commit d599ea27c5
2 changed files with 11 additions and 10 deletions

View File

@@ -4,13 +4,6 @@ module ActiveRecord
module AttributeMethods #:nodoc:
extend ActiveSupport::Concern
ATTRIBUTE_TYPES_CACHED_BY_DEFAULT = [:datetime, :timestamp, :time, :date]
included do
cattr_accessor :attribute_types_cached_by_default, :instance_writer => false
self.attribute_types_cached_by_default = ATTRIBUTE_TYPES_CACHED_BY_DEFAULT
end
# Declare and check for suffixed attribute methods.
module ClassMethods
# Declares a method available for all attributes with the given suffix.
@@ -77,9 +70,6 @@ module ActiveRecord
end
end
end
unless generated_methods.include?("id")
define_read_method(:id, primary_key, columns_hash[primary_key.to_s])
end
end
def undefine_attribute_methods

View File

@@ -3,8 +3,15 @@ module ActiveRecord
module Read
extend ActiveSupport::Concern
ATTRIBUTE_TYPES_CACHED_BY_DEFAULT = [:datetime, :timestamp, :time, :date]
included do
attribute_method_suffix ""
cattr_accessor :attribute_types_cached_by_default, :instance_writer => false
self.attribute_types_cached_by_default = ATTRIBUTE_TYPES_CACHED_BY_DEFAULT
# Undefine id so it can be used as an attribute name
undef_method :id
end
@@ -35,6 +42,10 @@ module ActiveRecord
else
define_read_method(attr_name.to_sym, attr_name, columns_hash[attr_name])
end
if attr_name == primary_key && attr_name != "id"
define_read_method(:id, attr_name, columns_hash[attr_name])
end
end
private