module Dynamoid::Dirty

Public Instance Methods

clear_changes() { |: true).tap do |result|| ... } click to toggle source
# File lib/dynamoid/dirty.rb, line 26
def clear_changes
  previous = changes
  (block_given? ? yield : true).tap do |result|
    unless result == false #failed validation; nil is OK.
      @previously_changed = previous
      changed_attributes.clear
    end
reload() click to toggle source
Calls superclass method
# File lib/dynamoid/dirty.rb, line 22
def reload
  super.tap { clear_changes }
end
save(*) click to toggle source
Calls superclass method
# File lib/dynamoid/dirty.rb, line 12
def save(*)
  clear_changes { super }
end
update!(*) click to toggle source
Calls superclass method
# File lib/dynamoid/dirty.rb, line 16
def update!(*)
  ret = super
  clear_changes #update! completely reloads all fields on the class, so any extant changes are wiped out
  ret
end