module ActsAsTaggableOn::Taggable

Public Class Methods

taggable?() click to toggle source
# File lib/acts_as_taggable_on/social_stream.rb, line 72
def self.taggable?
  true
end

Public Instance Methods

acts_as_taggable_on(*tag_types) click to toggle source
# File lib/acts_as_taggable_on/social_stream.rb, line 59
def acts_as_taggable_on(*tag_types)
  tag_types = tag_types.to_a.flatten.compact.map(&:to_sym)

  if taggable?
      self.tag_types = (self.tag_types + tag_types).uniq
  else
      class_attribute :tag_types
      self.tag_types = tag_types

    class_eval do
      has_many :taggings, :as => :taggable, :dependent => :destroy, :include => :tag, :class_name => "ActsAsTaggableOn::Tagging"
      has_many :base_tags, :through => :taggings, :source => :tag, :class_name => "ActsAsTaggableOn::Tag"

      def self.taggable?
        true
      end

      include ActsAsTaggableOn::Utils
      include ActsAsTaggableOn::Taggable::Core
      include ActsAsTaggableOn::Taggable::Collection
      include ActsAsTaggableOn::Taggable::Cache
      include ActsAsTaggableOn::Taggable::Ownership
      include ActsAsTaggableOn::Taggable::Related
      include ActsAsTaggableOn::Taggable::Dirty
    end
  end
end