Module: RSS::Maker::DublinCoreModel
Relationships & Source Files | |
Extension / Inclusion / Inheritance Descendants | |
Included In:
Atom::Entry::Channel,
Atom::Entry::Image,
Atom::Entry::Textinput,
Atom::Feed::Channel,
Atom::Feed::Image,
Atom::Feed::Textinput,
ChannelBase,
ImageBase,
ImageFaviconModel::ImageFaviconBase,
ImageItemModel::ImageItemBase,
ItemsBase::ItemBase,
RSS091::Channel,
RSS091::Image,
RSS091::Textinput,
RSS092::Channel,
RSS092::Image,
RSS092::Textinput,
RSS09::Channel,
RSS09::Image,
RSS09::Textinput,
RSS10::Channel,
RSS10::Image,
RSS10::Textinput,
RSS20::Channel,
RSS20::Image,
RSS20::Textinput,
TextinputBase
| |
Defined in: | lib/rss/maker/dublincore.rb |
Class Method Summary
Class Method Details
.append_features(klass)
[ GitHub ]# 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(<<-EOC, __FILE__, __LINE__ + 1) def new_#{full_name}(value=nil) _#{full_name} = #{full_plural_name}.new_#{name} _#{full_name}.value = value if block_given? yield _#{full_name} else _#{full_name} end end EOC end klass.module_eval(<<-EOC, __FILE__, __LINE__ + 1) # For backward compatibility alias #{DC_PREFIX}_rightses #{DC_PREFIX}_rights_list EOC end
.install_dublin_core(klass)
[ GitHub ]# 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(<<-EOC, __FILE__, __LINE__ + 1) class #{plural_klass_name} < #{plural_klass_name}Base class #{full_klass_name} < #{full_klass_name}Base end #{klass_name} = #{full_klass_name} end EOC end end