Factor out checks for duplicable objects. Closes #9333.

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7908 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
Jeremy Kemper
2007-10-15 07:13:40 +00:00
parent fb0673f5ad
commit 9f5a9aa35f
2 changed files with 3 additions and 12 deletions

View File

@@ -2205,13 +2205,7 @@ module ActiveRecord #:nodoc:
def clone_attribute_value(reader_method, attribute_name)
value = send(reader_method, attribute_name)
case value
when nil, Fixnum, true, false
value
else
value.clone
end
value.duplicable? ? value.clone : value
rescue TypeError, NoMethodError
value
end

View File

@@ -74,13 +74,10 @@ module ActiveRecord
@query_cache[sql] = yield
end
case result
when Array
if Array === result
result.collect { |row| row.dup }
when nil, Fixnum, Float, true, false
result
else
result.dup
result.duplicable? ? result.dup : result
end
rescue TypeError
result