mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* lib/rss/maker.rb, lib/rss/maker/0.9.rb, lib/rss/maker/base.rb:
RSS::Maker.[] returns a maker class corresponds to passed version. * test/rss/test_maker_*.rb: add tests for RSS::Maker.[]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@20644 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
1312189505
commit
dd5a95a14c
9 changed files with 86 additions and 13 deletions
|
@ -1,3 +1,10 @@
|
|||
Thu Dec 11 21:07:56 2008 Kouhei Sutou <kou@cozmixng.org>
|
||||
|
||||
* lib/rss/maker.rb, lib/rss/maker/0.9.rb, lib/rss/maker/base.rb:
|
||||
RSS::Maker.[] returns a maker class corresponds to passed version.
|
||||
|
||||
* test/rss/test_maker_*.rb: add tests for RSS::Maker.[].
|
||||
|
||||
Thu Dec 11 20:38:26 2008 Akinori MUSHA <knu@iDaemons.org>
|
||||
|
||||
* test/ruby/test_enumerator.rb: Add tests for the recently added
|
||||
|
|
|
@ -6,14 +6,13 @@ module RSS
|
|||
|
||||
class << self
|
||||
def make(version, &block)
|
||||
maker_info = self[version]
|
||||
maker_info[:maker].make(maker_info[:version], &block)
|
||||
self[version].make(&block)
|
||||
end
|
||||
|
||||
def [](version)
|
||||
maker_info = maker(version)
|
||||
raise UnsupportedMakerVersionError.new(version) if maker_info.nil?
|
||||
maker_info
|
||||
maker_info[:maker]
|
||||
end
|
||||
|
||||
def add_maker(version, normalized_version, maker)
|
||||
|
|
|
@ -7,7 +7,7 @@ module RSS
|
|||
|
||||
class RSS09 < RSSBase
|
||||
|
||||
def initialize(feed_version="0.92")
|
||||
def initialize(feed_version)
|
||||
super
|
||||
@feed_type = "rss"
|
||||
end
|
||||
|
@ -457,11 +457,51 @@ module RSS
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
add_maker("0.9", "0.92", RSS09)
|
||||
add_maker("0.91", "0.91", RSS09)
|
||||
add_maker("0.92", "0.92", RSS09)
|
||||
add_maker("rss0.91", "0.91", RSS09)
|
||||
add_maker("rss0.92", "0.92", RSS09)
|
||||
|
||||
class RSS091 < RSS09
|
||||
def initialize(feed_version="0.91")
|
||||
super
|
||||
end
|
||||
|
||||
class Channel < RSS09::Channel
|
||||
end
|
||||
|
||||
class Items < RSS09::Items
|
||||
class Item < RSS09::Items::Item
|
||||
end
|
||||
end
|
||||
|
||||
class Image < RSS09::Image
|
||||
end
|
||||
|
||||
class Textinput < RSS09::Textinput
|
||||
end
|
||||
end
|
||||
|
||||
class RSS092 < RSS09
|
||||
def initialize(feed_version="0.92")
|
||||
super
|
||||
end
|
||||
|
||||
class Channel < RSS09::Channel
|
||||
end
|
||||
|
||||
class Items < RSS09::Items
|
||||
class Item < RSS09::Items::Item
|
||||
end
|
||||
end
|
||||
|
||||
class Image < RSS09::Image
|
||||
end
|
||||
|
||||
class Textinput < RSS09::Textinput
|
||||
end
|
||||
end
|
||||
|
||||
add_maker("0.9", "0.92", RSS092)
|
||||
add_maker("0.91", "0.91", RSS091)
|
||||
add_maker("0.92", "0.92", RSS092)
|
||||
add_maker("rss0.91", "0.91", RSS091)
|
||||
add_maker("rss0.92", "0.92", RSS092)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -374,8 +374,8 @@ module RSS
|
|||
|
||||
class RSSBase < Base
|
||||
class << self
|
||||
def make(version, &block)
|
||||
new(version).make(&block)
|
||||
def make(*args, &block)
|
||||
new(*args).make(&block)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -384,7 +384,7 @@ module RSS
|
|||
add_need_initialize_variable(element) do |object|
|
||||
object.send("make_#{element}")
|
||||
end
|
||||
module_eval(<<-EOC, __FILE__, __LINE__)
|
||||
module_eval(<<-EOC, __FILE__, __LINE__ + 1)
|
||||
private
|
||||
def setup_#{element}(feed)
|
||||
@#{element}.to_feed(feed)
|
||||
|
|
|
@ -4,6 +4,13 @@ require "rss/maker"
|
|||
|
||||
module RSS
|
||||
class TestMaker09 < TestCase
|
||||
def test_find_class
|
||||
assert_equal(RSS::Maker::RSS091, RSS::Maker["0.91"])
|
||||
assert_equal(RSS::Maker::RSS091, RSS::Maker["rss0.91"])
|
||||
assert_equal(RSS::Maker::RSS092, RSS::Maker["0.9"])
|
||||
assert_equal(RSS::Maker::RSS092, RSS::Maker["0.92"])
|
||||
assert_equal(RSS::Maker::RSS092, RSS::Maker["rss0.92"])
|
||||
end
|
||||
|
||||
def test_rss
|
||||
assert_raise(LocalJumpError) do
|
||||
|
|
|
@ -4,6 +4,10 @@ require "rss/maker"
|
|||
|
||||
module RSS
|
||||
class TestMaker10 < TestCase
|
||||
def test_find_class
|
||||
assert_equal(RSS::Maker::RSS10, RSS::Maker["1.0"])
|
||||
assert_equal(RSS::Maker::RSS10, RSS::Maker["rss1.0"])
|
||||
end
|
||||
|
||||
def test_rdf
|
||||
assert_raise(LocalJumpError) do
|
||||
|
|
|
@ -4,6 +4,10 @@ require "rss/maker"
|
|||
|
||||
module RSS
|
||||
class TestMaker20 < TestCase
|
||||
def test_find_class
|
||||
assert_equal(RSS::Maker::RSS20, RSS::Maker["2.0"])
|
||||
assert_equal(RSS::Maker::RSS20, RSS::Maker["rss2.0"])
|
||||
end
|
||||
|
||||
def test_rss
|
||||
assert_raise(LocalJumpError) do
|
||||
|
|
|
@ -4,6 +4,11 @@ require "rss/maker"
|
|||
|
||||
module RSS
|
||||
class TestMakerAtomEntry < TestCase
|
||||
def test_find_class
|
||||
assert_equal(RSS::Maker::Atom::Entry, RSS::Maker["atom:entry"])
|
||||
assert_equal(RSS::Maker::Atom::Entry, RSS::Maker["atom1.0:entry"])
|
||||
end
|
||||
|
||||
def test_root_element
|
||||
entry = Maker.make("atom:entry") do |maker|
|
||||
setup_dummy_channel_atom(maker)
|
||||
|
|
|
@ -4,6 +4,13 @@ require "rss/maker"
|
|||
|
||||
module RSS
|
||||
class TestMakerAtomFeed < TestCase
|
||||
def test_find_class
|
||||
assert_equal(RSS::Maker::Atom::Feed, RSS::Maker["atom"])
|
||||
assert_equal(RSS::Maker::Atom::Feed, RSS::Maker["atom:feed"])
|
||||
assert_equal(RSS::Maker::Atom::Feed, RSS::Maker["atom1.0"])
|
||||
assert_equal(RSS::Maker::Atom::Feed, RSS::Maker["atom1.0:feed"])
|
||||
end
|
||||
|
||||
def test_root_element
|
||||
feed = Maker.make("atom") do |maker|
|
||||
setup_dummy_channel_atom(maker)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue