class Gutentag::Dirty

Attributes

instance[R]
tag_names[R]

Public Class Methods

call(instance, tag_names) click to toggle source
# File lib/gutentag/dirty.rb, line 4
def self.call(instance, tag_names)
  new(instance, tag_names).call
end
new(instance, tag_names) click to toggle source
# File lib/gutentag/dirty.rb, line 8
def initialize(instance, tag_names)
  @instance  = instance
  @tag_names = tag_names
end

Public Instance Methods

call() click to toggle source
# File lib/gutentag/dirty.rb, line 13
def call
  return unless changes.present?

  instance.tag_names_will_change!
  instance.changed_attributes[:tag_names] = existing
end

Private Instance Methods

changes() click to toggle source
# File lib/gutentag/dirty.rb, line 24
def changes
  (existing + tag_names).uniq - (existing & tag_names)
end
existing() click to toggle source
# File lib/gutentag/dirty.rb, line 28
def existing
  instance.tag_names
end