Module: EasyTags::DirtyMethods

Defined in:
lib/easy_tags/dirty_methods.rb

Overview

Handles dirty behaviour

Constant Summary collapse

RAILS_6 =
::ActiveRecord.gem_version >= ::Gem::Version.new('6.0.0')

Instance Method Summary collapse

Instance Method Details

#_mark_dirty(context:, taggable_context:) ⇒ Object



8
9
10
11
12
# File 'lib/easy_tags/dirty_methods.rb', line 8

def _mark_dirty(context:, taggable_context:)
  _set_dirty_previous_value(attribute_name: "#{context}_list", value: taggable_context.persisted_tags.to_s)
  write_attribute("#{context}_list", taggable_context.tags.to_s)
  attribute_will_change!("#{context}_list")
end

#_set_dirty_previous_value(attribute_name:, value:) ⇒ Object



15
16
17
18
19
20
21
# File 'lib/easy_tags/dirty_methods.rb', line 15

def _set_dirty_previous_value(attribute_name:, value:)
  @attributes[attribute_name] = ActiveModel::Attribute.from_user(
    attribute_name,
    value,
    ActiveModel::Type::Value.new
  )
end