diff options
Diffstat (limited to 'lib/rss/maker/dublincore.rb')
-rw-r--r-- | lib/rss/maker/dublincore.rb | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/lib/rss/maker/dublincore.rb b/lib/rss/maker/dublincore.rb new file mode 100644 index 0000000000..a9b8d58715 --- /dev/null +++ b/lib/rss/maker/dublincore.rb @@ -0,0 +1,47 @@ +require 'rss/dublincore' +require 'rss/maker/1.0' + +module RSS + module Maker + module DublinCoreModel + def self.append_features(klass) + super + + ::RSS::DublinCoreModel::ELEMENTS.each do |element| + klass.add_need_initialize_variable(element) + klass.add_other_element(element) + klass.__send__(:attr_accessor, element) + klass.module_eval(<<-EOC, __FILE__, __LINE__) + def setup_#{element}(rss, current) + if #{element} and current.respond_to?(:#{element}=) + current.#{element} = #{element} + end + end +EOC + end + end + end + + class ChannelBase + include DublinCoreModel + + undef_method(:dc_date) + undef_method(:dc_date=) + alias_method(:dc_date, :date) + alias_method(:dc_date=, :date=) + end + + class ImageBase; include DublinCoreModel; end + class ItemsBase + class ItemBase + include DublinCoreModel + + undef_method(:dc_date) + undef_method(:dc_date=) + alias_method(:dc_date, :date) + alias_method(:dc_date=, :date=) + end + end + class TextinputBase; include DublinCoreModel; end + end +end |