class ActsAsTaggableOn::Tag

Public Class Methods

find_or_create_all_with_like_by_name(*list) click to toggle source
# File lib/acts_as_taggable_on/tag.rb, line 41
def self.find_or_create_all_with_like_by_name(*list)
  list = [list].flatten

  return [] if list.empty?

  existing_tags = Tag.named_any(list).all
  new_tag_names = list.reject do |name|
                    name = comparable_name(name)
                    existing_tags.any? { |tag| comparable_name(tag.name) == name }
                  end
  created_tags  = new_tag_names.map { |name| Tag.create(:name => name) }

  existing_tags + created_tags
end
find_or_create_with_like_by_name(name) click to toggle source

CLASS METHODS:

# File lib/acts_as_taggable_on/tag.rb, line 37
def self.find_or_create_with_like_by_name(name)
  named_like(name).first || create(:name => name)
end
named(name) click to toggle source

SCOPES:

# File lib/acts_as_taggable_on/tag.rb, line 19
def self.named(name)
  where(["lower(name) = ?", name.downcase])
end
named_any(list) click to toggle source
# File lib/acts_as_taggable_on/tag.rb, line 23
def self.named_any(list)
  where(list.map { |tag| sanitize_sql(["lower(name) = ?", tag.to_s.mb_chars.downcase]) }.join(" OR "))
end
named_like(name) click to toggle source
# File lib/acts_as_taggable_on/tag.rb, line 27
def self.named_like(name)
  where(["name #{like_operator} ? ESCAPE '!'", "%#{escape_like(name)}%"])
end
named_like_any(list) click to toggle source
# File lib/acts_as_taggable_on/tag.rb, line 31
def self.named_like_any(list)
  where(list.map { |tag| sanitize_sql(["name #{like_operator} ? ESCAPE '!'", "%#{escape_like(tag.to_s)}%"]) }.join(" OR "))
end

Public Instance Methods

==(object) click to toggle source

INSTANCE METHODS:

# File lib/acts_as_taggable_on/tag.rb, line 58
def ==(object)
  super || (object.is_a?(Tag) && name == object.name)
end
count() click to toggle source
# File lib/acts_as_taggable_on/tag.rb, line 66
def count
  read_attribute(:count).to_i
end
to_s() click to toggle source
# File lib/acts_as_taggable_on/tag.rb, line 62
def to_s
  name
end