Module RSS::Maker::DublinCoreModel
In: rss/maker/dublincore.rb

Methods

Public Class methods

[Source]

# File rss/maker/dublincore.rb, line 7
      def self.append_features(klass)
        super

        ::RSS::DublinCoreModel::ELEMENT_NAME_INFOS.each do |name, plural_name|
          plural_name ||= "#{name}s"
          full_name = "#{RSS::DC_PREFIX}_#{name}"
          full_plural_name = "#{RSS::DC_PREFIX}_#{plural_name}"
          klass_name = Utils.to_class_name(name)
          plural_klass_name = "DublinCore#{Utils.to_class_name(plural_name)}"
          full_plural_klass_name = "self.class::#{plural_klass_name}"
          full_klass_name = "#{full_plural_klass_name}::#{klass_name}"
          klass.add_need_initialize_variable(full_plural_name,
                                             "make_#{full_plural_name}")
          klass.add_other_element(full_plural_name)
          klass.module_eval("attr_accessor :\#{full_plural_name}\ndef make_\#{full_plural_name}\n\#{full_plural_klass_name}.new(@maker)\nend\n\ndef setup_\#{full_plural_name}(rss, current)\n@\#{full_plural_name}.to_rss(rss, current)\nend\n\ndef \#{full_name}\n@\#{full_plural_name}[0] and @\#{full_plural_name}[0].value\nend\n\ndef \#{full_name}=(new_value)\n@\#{full_plural_name}[0] = \#{full_klass_name}.new(self)\n@\#{full_plural_name}[0].value = new_value\nend\n", __FILE__, __LINE__+1)
        end
      end

[Source]

# File rss/maker/dublincore.rb, line 83
      def self.install_dublin_core(klass)
        ::RSS::DublinCoreModel::ELEMENT_NAME_INFOS.each do |name, plural_name|
          plural_name ||= "#{name}s"
          klass_name = Utils.to_class_name(name)
          plural_klass_name = "DublinCore#{Utils.to_class_name(plural_name)}"
          full_klass_name = "DublinCore#{klass_name}"
          klass.module_eval("class \#{plural_klass_name} < \#{plural_klass_name}Base\nclass \#{klass_name} < \#{klass_name}Base\ndef to_rss(rss, current)\nif value and current.respond_to?(:dc_\#{name})\nnew_item = current.class::\#{full_klass_name}.new(value)\ncurrent.dc_\#{plural_name} << new_item\nend\nend\nend\nend\n", *Utils.get_file_and_line_from_caller(1))
        end
      end

[Validate]