Module: RSS::Maker::DublinCoreModel
- Included in:
- ChannelBase, ImageBase, ImageFaviconModel::ImageFaviconBase, ImageItemModel::ImageItemBase, ItemsBase::ItemBase, TextinputBase
- Defined in:
- lib/rss/maker/dublincore.rb
Class Method Summary collapse
Class Method Details
.append_features(klass) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/rss/maker/dublincore.rb', line 8 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}" plural_klass_name = "DublinCore#{Utils.to_class_name(plural_name)}" klass.def_classed_elements(full_name, "value", plural_klass_name, full_plural_name, name) klass.module_eval(" def new_\#{full_name}(value=nil)\n _\#{full_name} = \#{full_plural_name}.new_\#{name}\n _\#{full_name}.value = value\n if block_given?\n yield _\#{full_name}\n else\n _\#{full_name}\n end\n end\n EOC\n end\n\n klass.module_eval(<<-EOC, __FILE__, __LINE__ + 1)\n # For backward compatibility\n alias \#{DC_PREFIX}_rightses \#{DC_PREFIX}_rights_list\n EOC\nend\n", __FILE__, __LINE__ + 1) |
.install_dublin_core(klass) ⇒ Object
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/rss/maker/dublincore.rb', line 71 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) full_klass_name = "DublinCore#{klass_name}" plural_klass_name = "DublinCore#{Utils.to_class_name(plural_name)}" klass.module_eval(" class \#{plural_klass_name} < \#{plural_klass_name}Base\n class \#{full_klass_name} < \#{full_klass_name}Base\n end\n \#{klass_name} = \#{full_klass_name}\n end\n", __FILE__, __LINE__ + 1) end end |