diff options
author | kou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-10-31 14:14:21 +0000 |
---|---|---|
committer | kou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-10-31 14:14:21 +0000 |
commit | d58d59b0a4fa6859a3d3efd1a9d40832c3007ecf (patch) | |
tree | f9ae1db068b4fe971550f6cb2afda5a2c399f2bd /lib/rss/maker/dublincore.rb | |
parent | c6cf2e24fe9895b84308374017100cb77900d6db (diff) | |
download | ruby-d58d59b0a4fa6859a3d3efd1a9d40832c3007ecf.tar.gz |
* lib/rss/maker/*.rb: added RSS Maker.
* test/rss/test_maker_*.rb: added tests for RSS Maker.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7155 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
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 |