Module: RSS::Maker::DublinCoreModel

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

### Methods

append_features install_dublin_core

### Public Class methods

append_features(klass)

[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

install_dublin_core(klass)

[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]