module Disposable::Twin::Changed
Public Class Methods
new(model, *args)
click to toggle source
Calls superclass method
# File lib/disposable/twin/changed.rb, line 25 def initialize(model, *args) super # Setup#initialize. @_changes = Changes.new # override changed from initialize. end
Public Instance Methods
changed()
click to toggle source
this is usually called only once in Sync::SkipUnchanged
, per twin.
# File lib/disposable/twin/changed.rb, line 18 def changed _find_changed_twins!(@_changes) @_changes end
changed?(*args)
click to toggle source
# File lib/disposable/twin/changed.rb, line 11 def changed?(*args) # not recommended for external use? changed.changed?(*args) end
Private Instance Methods
_changed()
click to toggle source
# File lib/disposable/twin/changed.rb, line 30 def _changed @_changes ||= Changes.new # FIXME: why do we need to re-initialize here? end
_find_changed_twins!(changes)
click to toggle source
# File lib/disposable/twin/changed.rb, line 42 def _find_changed_twins!(changes) # FIXME: this will change soon. don't touch. schema.each(twin: true) do |dfn| next unless twin = send(dfn.getter) next unless twin.changed? changes[dfn[:name]] = true end end
write_property(name, value, dfn)
click to toggle source
Calls superclass method
# File lib/disposable/twin/changed.rb, line 34 def write_property(name, value, dfn) old_value = field_read(name) super.tap do _changed[name.to_s] = old_value != value end end