module Intercom::Traits::DirtyTracking
Public Instance Methods
field_changed?(field_name)
click to toggle source
# File lib/intercom/traits/dirty_tracking.rb, line 23 def field_changed?(field_name) @changed_fields ||= Set.new field = instance_variable_get("@#{field_name}") if field.respond_to?(:field_changed?) field.to_hash.any? do |attribute, _| field.field_changed?(attribute) end else @changed_fields.include?(field_name.to_s) end end
instance_variables_excluding_dirty_tracking_field()
click to toggle source
# File lib/intercom/traits/dirty_tracking.rb, line 35 def instance_variables_excluding_dirty_tracking_field instance_variables.reject{|var| var == :@changed_fields} end
mark_field_as_changed!(field_name)
click to toggle source
# File lib/intercom/traits/dirty_tracking.rb, line 18 def mark_field_as_changed!(field_name) @changed_fields ||= Set.new @changed_fields.add(field_name.to_s) end
mark_fields_as_changed!(field_names)
click to toggle source
# File lib/intercom/traits/dirty_tracking.rb, line 11 def mark_fields_as_changed!(field_names) @changed_fields ||= Set.new field_names.each do |attr| @changed_fields.add(attr.to_s) end end
reset_changed_fields!()
click to toggle source
# File lib/intercom/traits/dirty_tracking.rb, line 7 def reset_changed_fields! @changed_fields = Set.new end