Module: RSS::Maker::TaxonomyTopicModel

Included in:
RSSBase
Defined in:
lib/rss/maker/taxonomy.rb

Defined Under Namespace

Classes: TaxonomyTopicsBase

Class Method Summary collapse

Class Method Details

.append_features(klass) ⇒ Object



40
41
42
43
44
45
# File 'lib/rss/maker/taxonomy.rb', line 40

def self.append_features(klass)
  super

  class_name = "TaxonomyTopics"
  klass.def_classed_elements("#{TAXO_PREFIX}_topic", "value", class_name)
end

.install_taxo_topic(klass) ⇒ Object



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/rss/maker/taxonomy.rb', line 47

def self.install_taxo_topic(klass)
  klass.module_eval(<<-EOC, __FILE__, __LINE__ + 1)
    class TaxonomyTopics < TaxonomyTopicsBase
      class TaxonomyTopic < TaxonomyTopicBase
        DublinCoreModel.install_dublin_core(self)
        TaxonomyTopicsModel.install_taxo_topics(self)

        def to_feed(feed, current)
          if current.respond_to?(:taxo_topics)
            topic = current.class::TaxonomyTopic.new(value)
            topic.taxo_link = value
            taxo_topics.to_feed(feed, topic) if taxo_topics
            current.taxo_topics << topic
            setup_other_elements(feed, topic)
          end
        end
      end
    end
EOC
end