Module: Atom::HasCategories

Included in:
Entry, Feed
Defined in:
lib/atom/element.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(klass) ⇒ Object



660
661
662
# File 'lib/atom/element.rb', line 660

def HasCategories.included(klass)
  klass.atom_elements :category, :categories, Atom::Category
end

Instance Method Details

#tag_with(tags, delimiter = ' ') ⇒ Object

categorize the entry with each of an array or a space-separated

string


666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
# File 'lib/atom/element.rb', line 666

def tag_with(tags, delimiter = ' ')
  return if not tags or tags.empty?

  tag_list = unless tags.is_a?(String)
               tags
             else
               tags = tags.split(delimiter)
               tags.map! { |t| t.strip }
               tags.reject! { |t| t.empty? }
               tags.uniq
             end

  tag_list.each do |tag|
    unless categories.any? { |c| c.term == tag }
      categories.new :term => tag
    end
  end
end