module MongoMapper::Plugins::Dirty

Public Instance Methods

reload!() click to toggle source
Calls superclass method
# File lib/mongo_mapper/plugins/dirty.rb, line 22
def reload!
  super.tap do
    clear_changes_information
  end
end
save_to_collection(*) click to toggle source
Calls superclass method
# File lib/mongo_mapper/plugins/dirty.rb, line 16
def save_to_collection(*)
  super.tap do
    changes_applied
  end
end

Private Instance Methods

write_key(key_name, value) click to toggle source
Calls superclass method
# File lib/mongo_mapper/plugins/dirty.rb, line 30
def write_key(key_name, value)
  key_name = unalias_key(key_name)

  if !keys.key?(key_name)
    super
  else
    # find the MongoMapper::Plugins::Keys::Key
    _, key = keys.detect { |n, v| n == key_name }

    # typecast to the new value
    old_value = read_key(key_name)
    new_value = key.set(value)

    # only mark changed if really changed value (after typecasting)
    unless old_value == new_value
      attribute_will_change!(key_name)
    end

    super
  end
end