| Module | RSS::Maker::DublinCoreModel |
| In: |
lib/rss/maker/dublincore.rb
|
# File lib/rss/maker/dublincore.rb, line 7
7: def self.append_features(klass)
8: super
9:
10: ::RSS::DublinCoreModel::ELEMENT_NAME_INFOS.each do |name, plural_name|
11: plural_name ||= "#{name}s"
12: full_name = "#{RSS::DC_PREFIX}_#{name}"
13: full_plural_name = "#{RSS::DC_PREFIX}_#{plural_name}"
14: klass_name = Utils.to_class_name(name)
15: plural_klass_name = "DublinCore#{Utils.to_class_name(plural_name)}"
16: full_plural_klass_name = "self.class::#{plural_klass_name}"
17: full_klass_name = "#{full_plural_klass_name}::#{klass_name}"
18: klass.add_need_initialize_variable(full_plural_name,
19: "make_#{full_plural_name}")
20: klass.add_other_element(full_plural_name)
21: 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)
22: end
23: end
# File lib/rss/maker/dublincore.rb, line 87
87: def self.install_dublin_core(klass)
88: ::RSS::DublinCoreModel::ELEMENT_NAME_INFOS.each do |name, plural_name|
89: plural_name ||= "#{name}s"
90: klass_name = Utils.to_class_name(name)
91: plural_klass_name = "DublinCore#{Utils.to_class_name(plural_name)}"
92: full_klass_name = "DublinCore#{klass_name}"
93: 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))
94: end
95: end