Don't need to pass attr_name to evaluate_attribute_method anymore

This commit is contained in:
Joshua Peek
2009-07-30 14:16:36 -05:00
parent 2c30c9fe6c
commit 89e9efcbe2
4 changed files with 9 additions and 9 deletions

View File

@@ -72,7 +72,7 @@ module ActiveRecord
if respond_to?(generate_method)
send(generate_method, name)
else
evaluate_attribute_method(name, "def #{method_name}(*args); attribute#{suffix}('#{name}', *args); end", method_name)
evaluate_attribute_method("def #{method_name}(*args); attribute#{suffix}('#{name}', *args); end", method_name)
end
end
end
@@ -110,16 +110,16 @@ module ActiveRecord
end
# Evaluate the definition for an attribute related method
def evaluate_attribute_method(attr_name, method_definition, method_name)
def evaluate_attribute_method(method_definition, method_name)
generated_methods << method_name
begin
class_eval(method_definition, __FILE__, __LINE__)
rescue SyntaxError => err
generated_methods.delete(attr_name)
generated_methods.delete(method_name)
if logger
logger.warn "Exception occurred during reader method compilation."
logger.warn "Maybe #{attr_name} is not a valid Ruby identifier?"
logger.warn "Maybe #{method_name} is not a valid Ruby identifier?"
logger.warn err.message
end
end

View File

@@ -40,7 +40,7 @@ module ActiveRecord
private
# Define read method for serialized attribute.
def define_read_method_for_serialized_attribute(attr_name)
evaluate_attribute_method attr_name, "def #{attr_name}; unserialize_attribute('#{attr_name}'); end", attr_name
evaluate_attribute_method "def #{attr_name}; unserialize_attribute('#{attr_name}'); end", attr_name
end
# Define an attribute reader method. Cope with nil column.
@@ -55,7 +55,7 @@ module ActiveRecord
if cache_attribute?(attr_name)
access_code = "@attributes_cache['#{attr_name}'] ||= (#{access_code})"
end
evaluate_attribute_method attr_name, "def #{symbol}; #{access_code}; end", symbol
evaluate_attribute_method "def #{symbol}; #{access_code}; end", symbol
end
end

View File

@@ -25,7 +25,7 @@ module ActiveRecord
@attributes_cache['#{attr_name}'] = time.acts_like?(:time) ? time.in_time_zone : time
end
EOV
evaluate_attribute_method attr_name, method_body, attr_name
evaluate_attribute_method method_body, attr_name
else
super
end
@@ -44,7 +44,7 @@ module ActiveRecord
write_attribute(:#{attr_name}, time)
end
EOV
evaluate_attribute_method attr_name, method_body, "#{attr_name}="
evaluate_attribute_method method_body, "#{attr_name}="
else
super
end

View File

@@ -10,7 +10,7 @@ module ActiveRecord
module ClassMethods
protected
def define_attribute_method=(attr_name)
evaluate_attribute_method attr_name, "def #{attr_name}=(new_value); write_attribute('#{attr_name}', new_value); end", "#{attr_name}="
evaluate_attribute_method "def #{attr_name}=(new_value); write_attribute('#{attr_name}', new_value); end", "#{attr_name}="
end
end