Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Changeset 7908

Show
Ignore:
Timestamp:
10/15/07 07:13:40 (1 year ago)
Author:
bitsweat
Message:

Factor out checks for duplicable objects. Closes #9333.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/activerecord/lib/active_record/base.rb

    r7826 r7908  
    22062206      def clone_attribute_value(reader_method, attribute_name) 
    22072207        value = send(reader_method, attribute_name) 
    2208  
    2209         case value 
    2210         when nil, Fixnum, true, false 
    2211           value 
    2212         else 
    2213           value.clone 
    2214         end 
     2208        value.duplicable? ? value.clone : value 
    22152209      rescue TypeError, NoMethodError 
    22162210        value 
  • trunk/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb

    r7498 r7908  
    7575            end 
    7676 
    77           case result 
    78           when Array 
     77          if Array === result 
    7978            result.collect { |row| row.dup } 
    80           when nil, Fixnum, Float, true, false 
    81             result 
    8279          else 
    83             result.dup 
     80            result.duplicable? ? result.dup : result 
    8481          end 
    8582        rescue TypeError