module ActsAsTaggableOnMongoid::Taggable::TagTypeDefinition::Changeable

:reek: FeatureEnvy :reek: DuplicateMethodCall

Public Instance Methods

default_tagger_tag_list(taggable) click to toggle source
# File lib/acts_as_taggable_on_mongoid/taggable/tag_type_definition/changeable.rb, line 22
def default_tagger_tag_list(taggable)
  list = ActsAsTaggableOnMongoid::TaggerTagList.new(self, nil)

  list_default              = default.dup
  list_default.taggable     = taggable
  list_default.tagger       = list_default.tagger
  list[list_default.tagger] = list_default

  list.taggable = taggable

  list
end

Private Instance Methods

add_changed_from_default?() click to toggle source
# File lib/acts_as_taggable_on_mongoid/taggable/tag_type_definition/changeable.rb, line 81
def add_changed_from_default?
  tag_definition = self
  tag_list_name  = tag_definition.tag_list_name

  owner.taggable_mixin.module_eval do
    define_method("#{tag_list_name}_changed_from_default?") do
      changed_value = tag_definition.default_tagger_tag_list(self)
      current_value = tag_list_cache_on(tag_definition)

      !(changed_value <=> current_value)&.zero?
    end
  end
end
add_get_lists_was() click to toggle source
# File lib/acts_as_taggable_on_mongoid/taggable/tag_type_definition/changeable.rb, line 106
def add_get_lists_was
  tag_definition = self

  owner.taggable_mixin.module_eval do
    define_method("#{tag_definition.tagger_tag_lists_name}_was") do
      get_tag_lists_was(tag_definition)
    end
  end
end
add_get_was() click to toggle source
# File lib/acts_as_taggable_on_mongoid/taggable/tag_type_definition/changeable.rb, line 95
def add_get_was
  tag_definition = self
  tag_list_name  = tag_definition.tag_list_name

  owner.taggable_mixin.module_eval do
    define_method("#{tag_list_name}_was") do
      get_tag_list_was tag_definition
    end
  end
end
add_list_change() click to toggle source
# File lib/acts_as_taggable_on_mongoid/taggable/tag_type_definition/changeable.rb, line 48
def add_list_change
  tag_definition = self
  tag_list_name  = tag_definition.tag_list_name

  owner.taggable_mixin.module_eval do
    define_method("#{tag_list_name}_change") do
      get_tag_list_change(tag_definition)
    end
  end
end
add_list_changed() click to toggle source
# File lib/acts_as_taggable_on_mongoid/taggable/tag_type_definition/changeable.rb, line 59
def add_list_changed
  tag_definition = self
  tag_list_name  = tag_definition.tag_list_name

  owner.taggable_mixin.module_eval do
    define_method("#{tag_list_name}_changed?") do
      get_tag_list_changed(tag_definition)
    end
  end
end
add_list_exists() click to toggle source
# File lib/acts_as_taggable_on_mongoid/taggable/tag_type_definition/changeable.rb, line 37
def add_list_exists
  tag_definition = self
  tag_list_name  = tag_definition.tag_list_name

  owner.taggable_mixin.module_eval do
    define_method("#{tag_list_name}?") do
      tag_list_cache_on(tag_definition).values.any?(&:present?)
    end
  end
end
add_reset_list() click to toggle source
# File lib/acts_as_taggable_on_mongoid/taggable/tag_type_definition/changeable.rb, line 127
def add_reset_list
  tag_definition = self
  tag_list_name  = tag_definition.tag_list_name

  owner.taggable_mixin.module_eval do
    define_method("reset_#{tag_list_name}!") do
      return unless public_send("#{tag_list_name}_changed?")

      tagger_tag_list_set(changed_attributes[tag_list_name].dup)
    end
  end
end
add_reset_to_default() click to toggle source
# File lib/acts_as_taggable_on_mongoid/taggable/tag_type_definition/changeable.rb, line 140
def add_reset_to_default
  tag_definition = self
  tag_list_name  = tag_definition.tag_list_name

  owner.taggable_mixin.module_eval do
    define_method("reset_#{tag_list_name}_to_default!") do
      tagger_tag_list_set(tag_definition.default_tagger_tag_list(self))
    end
  end
end
add_tagger_get_was() click to toggle source
# File lib/acts_as_taggable_on_mongoid/taggable/tag_type_definition/changeable.rb, line 116
def add_tagger_get_was
  tag_definition = self
  tag_list_name  = tag_definition.tag_list_name

  owner.taggable_mixin.module_eval do
    define_method("tagger_#{tag_list_name}_was") do |tagger|
      get_tagger_list_was(tag_definition, tagger)
    end
  end
end
add_will_change() click to toggle source
# File lib/acts_as_taggable_on_mongoid/taggable/tag_type_definition/changeable.rb, line 70
def add_will_change
  tag_definition = self
  tag_list_name  = tag_definition.tag_list_name

  owner.taggable_mixin.module_eval do
    define_method("#{tag_list_name}_will_change!") do
      attribute_will_change! tag_list_name
    end
  end
end