Module: CouchPotato::Persistence::DirtyAttributes

Defined in:
lib/couch_potato/persistence/dirty_attributes.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object

:nodoc:



6
7
8
9
10
11
# File 'lib/couch_potato/persistence/dirty_attributes.rb', line 6

def self.included(base) #:nodoc:
  base.send :include, ActiveModel::Dirty
  base.class_eval do
    after_save :clear_changes_information
  end
end

Instance Method Details

#clone_attribute(value) ⇒ Object



13
14
15
16
17
18
19
20
21
22
# File 'lib/couch_potato/persistence/dirty_attributes.rb', line 13

def clone_attribute(value)
  if [Integer, Symbol, TrueClass, FalseClass, NilClass, Float, BigDecimal].find{|klass| value.is_a?(klass)}
    value
  elsif [Hash, Array].include?(value.class)
    #Deep clone
    Marshal::load(Marshal::dump(value))
  else
    value.clone
   end
end