module DataMapper::Property::DirtyMinder

Public Instance Methods

set!(resource, value) click to toggle source

Catch any direct assignment (set), and any Resource#reload (set!).

Calls superclass method
# File lib/dm-types/support/dirty_minder.rb, line 150
def set!(resource, value)
  # Do not extend non observed value classes
  if Hooker::MUTATION_METHODS.keys.detect { |klass| value.kind_of?(klass) }
    hook_value(resource, value) unless value.kind_of? Hooker
  end
  super
end

Private Instance Methods

hook_value(resource, value) click to toggle source
# File lib/dm-types/support/dirty_minder.rb, line 160
def hook_value(resource, value)
  return if value.kind_of? Hooker

  value.extend Hooker
  value.track(resource, self)
end