mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* 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
This commit is contained in:
parent
c6cf2e24fe
commit
d58d59b0a4
21 changed files with 2673 additions and 3 deletions
47
lib/rss/maker/dublincore.rb
Normal file
47
lib/rss/maker/dublincore.rb
Normal file
|
@ -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
|
Loading…
Add table
Add a link
Reference in a new issue