Sha256: 51e11656cf077bf812fd695935f163008cc37963d008a2a5885d50669807eb7b

Contents?: true

Size: 721 Bytes

Versions: 21

Compression:

Stored size: 721 Bytes

Contents

module Tags
  extend ActiveSupport::Concern

  included do
    has_many :taggings, :as => :taggable
    has_many :tags, :through => :taggings

    attr_accessor :tag_list

    after_save :update_tags!
  end

  def update_tags!
    unless tag_list.nil?
      self.tags = []
      used_tags = []
      tag_list.split(',').each do |name|
        name.strip!
        if !used_tags.include?(name) && name.present?
          used_tags << name
          tag = Tag.where(:ci_name => name.downcase).first
          if tag.nil?
            tag = Tag.create(:name => name)
          else
            tag.update(:name => name) unless name == tag.name
          end
          self.tags << tag
        end
      end
    end
  end

end

Version data entries

21 entries across 21 versions & 2 rubygems

Version Path
heartwood-0.0.1 app/models/concerns/tags.rb
cambium-1.3.2 app/models/concerns/tags.rb
cambium-1.3.1 app/models/concerns/tags.rb
cambium-1.3.0 app/models/concerns/tags.rb
cambium-1.2.3 app/models/concerns/tags.rb
cambium-1.2.2 app/models/concerns/tags.rb
cambium-1.2.1 app/models/concerns/tags.rb
cambium-1.2.0 app/models/concerns/tags.rb
cambium-1.1.6 app/models/concerns/tags.rb
cambium-1.1.5 app/models/concerns/tags.rb
cambium-1.1.4 app/models/concerns/tags.rb
cambium-1.1.3 app/models/concerns/tags.rb
cambium-1.1.2 app/models/concerns/tags.rb
cambium-1.1.1 app/models/concerns/tags.rb
cambium-1.1.0 app/models/concerns/tags.rb
cambium-1.0.4 app/models/concerns/tags.rb
cambium-1.0.3 app/models/concerns/tags.rb
cambium-1.0.2 app/models/concerns/tags.rb
cambium-1.0.1 app/models/concerns/tags.rb
cambium-1.0.0 app/models/concerns/tags.rb