summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--lib/rss/maker.rb4
-rw-r--r--lib/rss/maker/0.9.rb1
-rw-r--r--test/rss/test_maker_0.9.rb11
-rw-r--r--test/rss/test_maker_1.0.rb7
-rw-r--r--test/rss/test_maker_2.0.rb7
-rw-r--r--test/rss/test_maker_atom_entry.rb6
-rw-r--r--test/rss/test_maker_atom_feed.rb9
8 files changed, 50 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 6fe541dce3..99b794f3cb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sat May 16 19:46:30 2009 Kouhei Sutou <kou@cozmixng.org>
+
+ * lib/rss/maker.rb, lib/rss/maker/0.9.rb,
+ test/test_maker_*.rb: add RSS::Maker.supported?
+
Sat May 16 19:44:09 2009 Kouhei Sutou <kou@cozmixng.org>
* lib/rss/content/*, lib/rss/dublincore/*: fix circular require.
diff --git a/lib/rss/maker.rb b/lib/rss/maker.rb
index ed3fff47d8..a7ee200b32 100644
--- a/lib/rss/maker.rb
+++ b/lib/rss/maker.rb
@@ -27,6 +27,10 @@ module RSS
MAKERS.values.collect {|info| info[:maker]}.uniq
end
+ def supported?(version)
+ versions.include?(version)
+ end
+
private
# Can I remove this method?
def maker(version)
diff --git a/lib/rss/maker/0.9.rb b/lib/rss/maker/0.9.rb
index cc7db8c638..dc7dd2812b 100644
--- a/lib/rss/maker/0.9.rb
+++ b/lib/rss/maker/0.9.rb
@@ -501,6 +501,7 @@ module RSS
add_maker("0.9", "0.92", RSS092)
add_maker("0.91", "0.91", RSS091)
add_maker("0.92", "0.92", RSS092)
+ add_maker("rss0.9", "0.92", RSS092)
add_maker("rss0.91", "0.91", RSS091)
add_maker("rss0.92", "0.92", RSS092)
end
diff --git a/test/rss/test_maker_0.9.rb b/test/rss/test_maker_0.9.rb
index f397f92646..fcdc9d0cd4 100644
--- a/test/rss/test_maker_0.9.rb
+++ b/test/rss/test_maker_0.9.rb
@@ -4,6 +4,17 @@ require "rss/maker"
module RSS
class TestMaker09 < TestCase
+ def test_supported?
+ assert(RSS::Maker.supported?("0.9"))
+ assert(RSS::Maker.supported?("rss0.9"))
+ assert(RSS::Maker.supported?("0.91"))
+ assert(RSS::Maker.supported?("rss0.91"))
+ assert(RSS::Maker.supported?("0.92"))
+ assert(RSS::Maker.supported?("rss0.92"))
+ assert(!RSS::Maker.supported?("0.93"))
+ assert(!RSS::Maker.supported?("rss0.93"))
+ end
+
def test_find_class
assert_equal(RSS::Maker::RSS091, RSS::Maker["0.91"])
assert_equal(RSS::Maker::RSS091, RSS::Maker["rss0.91"])
diff --git a/test/rss/test_maker_1.0.rb b/test/rss/test_maker_1.0.rb
index 415d11e2e9..48c476fdf8 100644
--- a/test/rss/test_maker_1.0.rb
+++ b/test/rss/test_maker_1.0.rb
@@ -4,6 +4,13 @@ require "rss/maker"
module RSS
class TestMaker10 < TestCase
+ def test_supported?
+ assert(RSS::Maker.supported?("1.0"))
+ assert(RSS::Maker.supported?("rss1.0"))
+ assert(!RSS::Maker.supported?("1.1"))
+ assert(!RSS::Maker.supported?("rss1.1"))
+ end
+
def test_find_class
assert_equal(RSS::Maker::RSS10, RSS::Maker["1.0"])
assert_equal(RSS::Maker::RSS10, RSS::Maker["rss1.0"])
diff --git a/test/rss/test_maker_2.0.rb b/test/rss/test_maker_2.0.rb
index 9fe6543dd9..290164d354 100644
--- a/test/rss/test_maker_2.0.rb
+++ b/test/rss/test_maker_2.0.rb
@@ -4,6 +4,13 @@ require "rss/maker"
module RSS
class TestMaker20 < TestCase
+ def test_supported?
+ assert(RSS::Maker.supported?("2.0"))
+ assert(RSS::Maker.supported?("rss2.0"))
+ assert(!RSS::Maker.supported?("2.2"))
+ assert(!RSS::Maker.supported?("rss2.2"))
+ end
+
def test_find_class
assert_equal(RSS::Maker::RSS20, RSS::Maker["2.0"])
assert_equal(RSS::Maker::RSS20, RSS::Maker["rss2.0"])
diff --git a/test/rss/test_maker_atom_entry.rb b/test/rss/test_maker_atom_entry.rb
index 94e4255e9e..4275bdc685 100644
--- a/test/rss/test_maker_atom_entry.rb
+++ b/test/rss/test_maker_atom_entry.rb
@@ -4,6 +4,12 @@ require "rss/maker"
module RSS
class TestMakerAtomEntry < TestCase
+ def test_supported?
+ assert(RSS::Maker.supported?("atom:entry"))
+ assert(RSS::Maker.supported?("atom1.0:entry"))
+ assert(!RSS::Maker.supported?("atom2.0:entry"))
+ end
+
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"])
diff --git a/test/rss/test_maker_atom_feed.rb b/test/rss/test_maker_atom_feed.rb
index 6ffd47c396..58a55c43ff 100644
--- a/test/rss/test_maker_atom_feed.rb
+++ b/test/rss/test_maker_atom_feed.rb
@@ -4,6 +4,15 @@ require "rss/maker"
module RSS
class TestMakerAtomFeed < TestCase
+ def test_supported?
+ assert(RSS::Maker.supported?("atom"))
+ assert(RSS::Maker.supported?("atom:feed"))
+ assert(RSS::Maker.supported?("atom1.0"))
+ assert(RSS::Maker.supported?("atom1.0:feed"))
+ assert(!RSS::Maker.supported?("atom2.0"))
+ assert(!RSS::Maker.supported?("atom2.0:feed"))
+ end
+
def test_find_class
assert_equal(RSS::Maker::Atom::Feed, RSS::Maker["atom"])
assert_equal(RSS::Maker::Atom::Feed, RSS::Maker["atom:feed"])