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

Methods

Public Class methods

[Source]

    # 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

[Source]

    # 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

[Validate]