Class: Tag
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Tag
- Defined in:
- lib/acts_as_taggable_on/tag.rb
Class Method Summary collapse
- .cleanup(name) ⇒ Object
-
.find_or_create_with_like_by_name(name) ⇒ Object
LIKE is used for cross-database case-insensitivity.
- .per_page ⇒ Object
Instance Method Summary collapse
Class Method Details
.cleanup(name) ⇒ Object
7 8 9 10 11 |
# File 'lib/acts_as_taggable_on/tag.rb', line 7 def self.cleanup(name) return nil if name.blank? n = name.to_s.mb_chars.downcase.strip.to_s n.blank? ? nil : n end |
.find_or_create_with_like_by_name(name) ⇒ Object
LIKE is used for cross-database case-insensitivity
19 20 21 22 23 24 25 26 27 28 |
# File 'lib/acts_as_taggable_on/tag.rb', line 19 def self.find_or_create_with_like_by_name(name) name = Tag.cleanup(name) begin find(:first, :conditions => ["name LIKE ?", name]) || create(:name => name) rescue ActiveRecord::StatementInvalid # If we can't insert the tag (perhaps a dupe), try to refetch. find(:first, :conditions => ["name LIKE ?", name]) end end |
.per_page ⇒ Object
42 43 44 |
# File 'lib/acts_as_taggable_on/tag.rb', line 42 def self.per_page 10 end |
Instance Method Details
#==(object) ⇒ Object
30 31 32 |
# File 'lib/acts_as_taggable_on/tag.rb', line 30 def ==(object) super || (object.is_a?(Tag) && name == object.name) end |
#count ⇒ Object
38 39 40 |
# File 'lib/acts_as_taggable_on/tag.rb', line 38 def count read_attribute(:count).to_i end |
#name=(name) ⇒ Object
13 14 15 16 |
# File 'lib/acts_as_taggable_on/tag.rb', line 13 def name=(name) #strip any non-alphanumeric and downcase self["name"] = Tag.cleanup(name) end |
#to_s ⇒ Object
34 35 36 |
# File 'lib/acts_as_taggable_on/tag.rb', line 34 def to_s name end |