In Files

  • rss/maker/taxonomy.rb

Class/Module Index [+]

Quicksearch

RSS::Maker::TaxonomyTopicModel

Public Class Methods

append_features(klass) click to toggle source
 
               # File rss/maker/taxonomy.rb, line 51
      def self.append_features(klass)
        super

        klass.add_need_initialize_variable("taxo_topics", "make_taxo_topics")
        klass.add_other_element("taxo_topics")
        klass.module_eval(<<-EOC, __FILE__, __LINE__ + 1)
          attr_reader :taxo_topics
          def make_taxo_topics
            self.class::TaxonomyTopics.new(@maker)
          end
            
          def setup_taxo_topics(rss, current)
            @taxo_topics.to_rss(rss, current)
          end

          def taxo_topic
            @taxo_topics[0] and @taxo_topics[0].value
          end
            
          def taxo_topic=(new_value)
            @taxo_topic[0] = self.class::TaxonomyTopic.new(self)
            @taxo_topic[0].value = new_value
          end
EOC
      end
            
install_taxo_topic(klass) click to toggle source
 
               # File rss/maker/taxonomy.rb, line 77
      def self.install_taxo_topic(klass)
        klass.module_eval(<<-EOC, *Utils.get_file_and_line_from_caller(1))
          class TaxonomyTopics < TaxonomyTopicsBase
            class TaxonomyTopic < TaxonomyTopicBase
              DublinCoreModel.install_dublin_core(self)
              TaxonomyTopicsModel.install_taxo_topics(self)

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

              def current_element(rss)
                super.taxo_topics.last
              end
            end
          end
EOC
      end