module RedmineCrm::ActsAsTaggable::Taggable::InstanceMethods

Public Instance Methods

all_tags_list() click to toggle source

build list from related tags

# File lib/redmine_crm/acts_as_taggable/rcrm_acts_as_taggable.rb, line 310
def all_tags_list
  tags.pluck(:name)
end
save_cached_tag_list() click to toggle source
# File lib/redmine_crm/acts_as_taggable/rcrm_acts_as_taggable.rb, line 303
def save_cached_tag_list
  if self.class.caching_tag_list?
    self[self.class.cached_tag_list_column_name] = tag_list.to_s
  end
end
save_tags() click to toggle source
# File lib/redmine_crm/acts_as_taggable/rcrm_acts_as_taggable.rb, line 314
def save_tags
  return unless @tag_list

  new_tag_names = @tag_list - tags.map(&:name)
  old_tags = tags.reject { |tag| @tag_list.include?(tag.name) }

  self.class.transaction do
    if old_tags.any?
      taggings.where("tag_id IN (?)", old_tags.map(&:id)).each(&:destroy)
      taggings.reset
    end
    new_tag_names.each do |new_tag_name|
      tags << Tag.find_or_create_with_like_by_name(new_tag_name)
    end
  end

  true
end
tag_counts(options = {}) click to toggle source

Calculate the tag counts for the tags used by this model.

The possible options are the same as the tag_counts class method.

# File lib/redmine_crm/acts_as_taggable/rcrm_acts_as_taggable.rb, line 336
def tag_counts(options = {})
  return [] if tag_list.blank?

  options[:conditions] = self.class.send(:merge_conditions, options[:conditions], self.class.send(:tags_condition, tag_list))
  self.class.tag_counts(options)
end
tag_list() click to toggle source
# File lib/redmine_crm/acts_as_taggable/rcrm_acts_as_taggable.rb, line 289
def tag_list
  return @tag_list if @tag_list ||= nil

  if self.class.caching_tag_list? && !(cached_value = send(self.class.cached_tag_list_column_name)).nil?
    @tag_list = TagList.from(cached_value)
  else
    @tag_list = TagList.new(*tags.map(&:name))
  end
end
tag_list=(value) click to toggle source
# File lib/redmine_crm/acts_as_taggable/rcrm_acts_as_taggable.rb, line 299
def tag_list=(value)
  @tag_list = TagList.from(value)
end