module MarkMapper::Plugins::Dirty

Public Class Methods

new(*) click to toggle source
Calls superclass method
# File lib/mark_mapper/plugins/dirty.rb, line 9
def initialize(*)
  # never register initial id assignment as a change
  # Chaining super into tap breaks implicit block passing in Ruby 1.8
  doc = super
  doc.tap { changed_attributes.delete('_id') }
end

Public Instance Methods

clear_changes() { |: true).tap do |result|| ... } click to toggle source
# File lib/mark_mapper/plugins/dirty.rb, line 25
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/mark_mapper/plugins/dirty.rb, line 20
def reload(*)
  doc = super
  doc.tap { clear_changes }
end
save(*) click to toggle source
Calls superclass method
# File lib/mark_mapper/plugins/dirty.rb, line 16
def save(*)
  clear_changes { super }
end