module ZendeskAPI::TrackChanges::InstanceMethods

@private

Public Instance Methods

changed?(key = nil) click to toggle source
# File lib/zendesk_api/track_changes.rb, line 74
def changed?(key = nil)
  if key.nil?
    !changes.empty? || any? { |_, v| v.respond_to?(:changed?) && v.changed? }
  else
    changes.key?(key)
  end
end
Also aliased as: dirty?
changes() click to toggle source
# File lib/zendesk_api/track_changes.rb, line 62
def changes
  (@changes ||= self.class.superclass.new).tap do |changes|
    each do |k, v|
      if v.respond_to?(:changed?) && v.changed?
        changes[k] = v.changes
      elsif v.is_a?(Array) && v.any? { |val| val.respond_to?(:changed?) && val.changed? }
        changes[k] = v
      end
    end
  end
end
clear() click to toggle source
# File lib/zendesk_api/track_changes.rb, line 43
def clear
  keys.each { |key| delete key }
end
clear_changes() click to toggle source
# File lib/zendesk_api/track_changes.rb, line 22
def clear_changes
  each do |k, v|
    if v.respond_to?(:clear_changes)
      v.clear_changes
    elsif v.is_a?(Array)
      v.each do |val|
        if val.respond_to?(:clear_changes)
          val.clear_changes
        end
      end
    end
  end

  changes.clear
end
delete(key) click to toggle source
Calls superclass method
# File lib/zendesk_api/track_changes.rb, line 56
def delete(key)
  super.tap do |value|
    changes[key] = nil
  end
end
dirty?(key = nil)
Alias for: changed?
regular_writer(key, value) click to toggle source
Calls superclass method
# File lib/zendesk_api/track_changes.rb, line 47
def regular_writer(key, value)
  if has_key?(key) && self[key] == value
    value
  else
    changes[key] = value
    defined?(_store) ? _store(key, value) : super(key, value)
  end
end
replace(other) click to toggle source
# File lib/zendesk_api/track_changes.rb, line 38
def replace(other)
  clear
  merge! other
end