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..6a4c64a464 --- /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) + current.#{element} = #{element} if #{element} + end +EOC + end + end + end + + class RSS10 + class Channel + include DublinCoreModel + + alias_method(:_dc_date, :dc_date) + alias_method(:_dc_date=, :dc_date=) + alias_method(:dc_date, :date) + alias_method(:dc_date=, :date=) + end + + class Image; include DublinCoreModel; end + class Items + class Item + include DublinCoreModel + + alias_method(:_dc_date, :dc_date) + alias_method(:_dc_date=, :dc_date=) + alias_method(:dc_date, :date) + alias_method(:dc_date=, :date=) + end + end + class Textinput; include DublinCoreModel; end + end + end +end |