Sha256: a25abe2e4f506f32f06033dcbe9d9e8e69470756fb57ad0171449d2ebfe3d77f
Contents?: true
Size: 717 Bytes
Versions: 1
Compression:
Stored size: 717 Bytes
Contents
class Tag < ActiveRecord::Base class << self def find_or_initialize_with_name_like_and_kind(name, kind) name = normalize(name) with_name_like_and_kind(name, kind).first || new(:name => name, :kind => kind) end def normalize(name) name.gsub(/\s+/, ' ').strip end end has_many :taggings, :dependent => :destroy validates_presence_of :name validates_uniqueness_of :name, :scope => :kind named_scope :with_name_like_and_kind, lambda { |name, kind| { :conditions => ["name like ? AND kind = ?", name, kind] } } named_scope :of_kind, lambda { |kind| { :conditions => {:kind => kind} } } def name=(name) super self.class.normalize(name) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
martinemde-is_taggable-0.2.0 | lib/tag.rb |