| 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.def_classed_elements(full_name, "value", plural_klass_name,
19: full_plural_name, name)
20: klass.module_eval("def new_\#{full_name}(value=nil)\n_\#{full_name} = \#{full_plural_name}.new_\#{name}\n_\#{full_name}.value = value\nif block_given?\nyield _\#{full_name}\nelse\n_\#{full_name}\nend\nend\n", __FILE__, __LINE__ + 1)
21: end
22:
23: klass.module_eval("# For backward compatibility\nalias \#{DC_PREFIX}_rightses \#{DC_PREFIX}_rights_list\n", __FILE__, __LINE__ + 1)
24: end
# File lib/rss/maker/dublincore.rb, line 76
76: def self.install_dublin_core(klass)
77: ::RSS::DublinCoreModel::ELEMENT_NAME_INFOS.each do |name, plural_name|
78: plural_name ||= "#{name}s"
79: klass_name = Utils.to_class_name(name)
80: full_klass_name = "DublinCore#{klass_name}"
81: plural_klass_name = "DublinCore#{Utils.to_class_name(plural_name)}"
82: klass.module_eval("class \#{plural_klass_name} < \#{plural_klass_name}Base\nclass \#{full_klass_name} < \#{full_klass_name}Base\nend\n\#{klass_name} = \#{full_klass_name}\nend\n", __FILE__, __LINE__ + 1)
83: end
84: end