# module ActiveLdap module AttributeMethods module Dirty extend ActiveSupport::Concern include ActiveModel::Dirty # Attempts to +save+ the record and clears changed attributes if successful. def save(*) #:nodoc: succeeded = super if succeeded @previously_changed = changes @changed_attributes.clear end succeeded end # Attempts to save! the record and clears changed attributes if successful. def save!(*) #:nodoc: super.tap do @previously_changed = changes @changed_attributes.clear end end # reload the record and clears changed attributes. def reload(*) #:nodoc: super.tap do @previously_changed.clear @changed_attributes.clear end end protected def set_attribute(name, value) if name != "objectClass" attribute_will_change!(name) unless value == get_attribute(name) end super end end end end