Module: ZendeskAPI::TrackChanges::InstanceMethods

Defined in:
lib/zendesk_api/track_changes.rb

Instance Method Summary collapse

Instance Method Details

#[](key) ⇒ Object



38
39
40
# File 'lib/zendesk_api/track_changes.rb', line 38

def [](key)
  super(key)
end

#changed?(key = nil) ⇒ Boolean Also known as: dirty?

Returns:

  • (Boolean)


62
63
64
65
66
67
68
# File 'lib/zendesk_api/track_changes.rb', line 62

def changed?(key = nil)
  if key.nil?
    !changes.empty? || any? {|_, v| v.respond_to?(:changed?) && v.changed?}
  else
    changes.key?(key)
  end
end

#changesObject



52
53
54
55
56
57
58
59
60
# File 'lib/zendesk_api/track_changes.rb', line 52

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
      end
    end
  end
end

#clearObject



34
35
36
# File 'lib/zendesk_api/track_changes.rb', line 34

def clear
  keys.each{|key| delete key}
end

#clear_changesObject



21
22
23
24
25
26
27
# File 'lib/zendesk_api/track_changes.rb', line 21

def clear_changes
  each do |k, v|
    v.clear_changes if v.respond_to?(:clear_changes)
  end

  changes.clear
end

#delete(key) ⇒ Object



47
48
49
50
# File 'lib/zendesk_api/track_changes.rb', line 47

def delete(key)
  self[key] = nil
  super
end

#regular_writer(key, value) ⇒ Object



42
43
44
45
# File 'lib/zendesk_api/track_changes.rb', line 42

def regular_writer(key, value)
  changes[key] = value
  defined?(_store) ? _store(key, value) : super(key, value)
end

#replace(other) ⇒ Object



29
30
31
32
# File 'lib/zendesk_api/track_changes.rb', line 29

def replace(other)
  clear
  merge! other
end