ruby-changes:3941
From: ko1@a...
Date: Mon, 11 Feb 2008 17:24:47 +0900 (JST)
Subject: [ruby-changes:3941] kou - Ruby:r15431 (trunk): * lib/rss/rss.rb (RSS::VERSION), test/rss/test_version.rb:
kou 2008-02-11 17:24:18 +0900 (Mon, 11 Feb 2008)
New Revision: 15431
Modified files:
trunk/ChangeLog
trunk/lib/rss/maker/0.9.rb
trunk/lib/rss/maker/1.0.rb
trunk/lib/rss/maker/2.0.rb
trunk/lib/rss/maker/base.rb
trunk/lib/rss/maker/entry.rb
trunk/lib/rss/maker/feed.rb
trunk/lib/rss/maker.rb
trunk/lib/rss/rss.rb
trunk/test/rss/test_maker_0.9.rb
trunk/test/rss/test_maker_2.0.rb
trunk/test/rss/test_version.rb
Log:
* lib/rss/rss.rb (RSS::VERSION), test/rss/test_version.rb:
0.2.3 -> 0.2.4.
* lib/rss/maker.rb, lib/rss/maker/, test/rss/test_maker_2.0.rb:
fixed a bug that RSS::Maker.make("0.9")'s item doesn't make some
elements if description is missed.
Reported by Michael Auzenne. Thanks!!!
* lib/rss/maker/0.9.rb, test/rss/test_maker_0.9.rb:
RSS::Maker.make("0.9") generates RSS 0.92 not RSS 0.91.
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/test/rss/test_maker_2.0.rb?r1=15431&r2=15430&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/test/rss/test_maker_0.9.rb?r1=15431&r2=15430&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/rss/maker/feed.rb?r1=15431&r2=15430&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/rss/maker/2.0.rb?r1=15431&r2=15430&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/test/rss/test_version.rb?r1=15431&r2=15430&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/rss/rss.rb?r1=15431&r2=15430&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=15431&r2=15430&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/rss/maker/base.rb?r1=15431&r2=15430&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/rss/maker.rb?r1=15431&r2=15430&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/rss/maker/1.0.rb?r1=15431&r2=15430&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/rss/maker/entry.rb?r1=15431&r2=15430&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/rss/maker/0.9.rb?r1=15431&r2=15430&diff_format=u
Index: ChangeLog
===================================================================
--- ChangeLog (revision 15430)
+++ ChangeLog (revision 15431)
@@ -1,3 +1,16 @@
+Mon Feb 11 17:21:18 2008 Kouhei Sutou <kou@c...>
+
+ * lib/rss/rss.rb (RSS::VERSION), test/rss/test_version.rb:
+ 0.2.3 -> 0.2.4.
+
+ * lib/rss/maker.rb, lib/rss/maker/, test/rss/test_maker_2.0.rb:
+ fixed a bug that RSS::Maker.make("0.9")'s item doesn't make some
+ elements if description is missed.
+ Reported by Michael Auzenne. Thanks!!!
+
+ * lib/rss/maker/0.9.rb, test/rss/test_maker_0.9.rb:
+ RSS::Maker.make("0.9") generates RSS 0.92 not RSS 0.91.
+
Mon Feb 11 10:43:31 2008 NARUSE, Yui <naruse@r...>
* ruby.c (load_file): the encoding of DATA follows the source
Index: lib/rss/maker/1.0.rb
===================================================================
--- lib/rss/maker/1.0.rb (revision 15430)
+++ lib/rss/maker/1.0.rb (revision 15431)
@@ -7,8 +7,8 @@
class RSS10 < RSSBase
- def initialize
- super("1.0")
+ def initialize(feed_version="1.0")
+ super
@feed_type = "rss"
end
@@ -428,7 +428,7 @@
end
end
- add_maker("1.0", RSS10)
- add_maker("rss1.0", RSS10)
+ add_maker("1.0", "1.0", RSS10)
+ add_maker("rss1.0", "1.0", RSS10)
end
end
Index: lib/rss/maker/2.0.rb
===================================================================
--- lib/rss/maker/2.0.rb (revision 15430)
+++ lib/rss/maker/2.0.rb (revision 15431)
@@ -93,9 +93,18 @@
class Item < RSS09::Items::Item
private
def required_variable_names
- %w(title description)
+ []
end
+ def not_set_required_variables
+ vars = super
+ if !title {|t| t.have_required_values?} and
+ !description {|d| d.have_required_values?}
+ vars << "title or description"
+ end
+ vars
+ end
+
def variables
super + ["pubDate"]
end
@@ -208,7 +217,7 @@
end
end
- add_maker("2.0", RSS20)
- add_maker("rss2.0", RSS20)
+ add_maker("2.0", "2.0", RSS20)
+ add_maker("rss2.0", "2.0", RSS20)
end
end
Index: lib/rss/maker/entry.rb
===================================================================
--- lib/rss/maker/entry.rb (revision 15430)
+++ lib/rss/maker/entry.rb (revision 15431)
@@ -5,8 +5,8 @@
module Maker
module Atom
class Entry < RSSBase
- def initialize
- super("1.0")
+ def initialize(feed_version="1.0")
+ super
@feed_type = "atom"
@feed_subtype = "entry"
end
@@ -157,7 +157,7 @@
end
end
- add_maker("atom:entry", Atom::Entry)
- add_maker("atom1.0:entry", Atom::Entry)
+ add_maker("atom:entry", "1.0", Atom::Entry)
+ add_maker("atom1.0:entry", "1.0", Atom::Entry)
end
end
Index: lib/rss/maker/feed.rb
===================================================================
--- lib/rss/maker/feed.rb (revision 15430)
+++ lib/rss/maker/feed.rb (revision 15431)
@@ -4,8 +4,8 @@
module Maker
module Atom
class Feed < RSSBase
- def initialize
- super("1.0")
+ def initialize(feed_version="1.0")
+ super
@feed_type = "atom"
@feed_subtype = "feed"
end
@@ -421,9 +421,9 @@
end
end
- add_maker("atom", Atom::Feed)
- add_maker("atom:feed", Atom::Feed)
- add_maker("atom1.0", Atom::Feed)
- add_maker("atom1.0:feed", Atom::Feed)
+ add_maker("atom", "1.0", Atom::Feed)
+ add_maker("atom:feed", "1.0", Atom::Feed)
+ add_maker("atom1.0", "1.0", Atom::Feed)
+ add_maker("atom1.0:feed", "1.0", Atom::Feed)
end
end
Index: lib/rss/maker/0.9.rb
===================================================================
--- lib/rss/maker/0.9.rb (revision 15430)
+++ lib/rss/maker/0.9.rb (revision 15431)
@@ -7,7 +7,7 @@
class RSS09 < RSSBase
- def initialize(feed_version="0.91")
+ def initialize(feed_version="0.92")
super
@feed_type = "rss"
end
@@ -258,23 +258,27 @@
def to_feed(rss)
item = Rss::Channel::Item.new
set = setup_values(item)
- if set or title {|t| t.have_required_values?}
+ _not_set_required_variables = not_set_required_variables
+ if _not_set_required_variables.empty?
rss.items << item
set_parent(item, rss.channel)
setup_other_elements(rss, item)
elsif variable_is_set?
- raise NotSetError.new("maker.items", not_set_required_variables)
+ raise NotSetError.new("maker.items", _not_set_required_variables)
end
end
private
def required_variable_names
- %w(link)
+ []
end
def not_set_required_variables
vars = super
- vars << "title" unless title {|t| t.have_required_values?}
+ if @maker.feed_version == "0.91"
+ vars << "title" unless title {|t| t.have_required_values?}
+ vars << "link" unless link {|l| l.have_required_values?}
+ end
vars
end
@@ -454,8 +458,10 @@
end
end
- add_maker("0.9", RSS09)
- add_maker("0.91", RSS09)
- add_maker("rss0.91", RSS09)
+ 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)
end
end
Index: lib/rss/maker/base.rb
===================================================================
--- lib/rss/maker/base.rb (revision 15430)
+++ lib/rss/maker/base.rb (revision 15431)
@@ -357,8 +357,8 @@
class RSSBase < Base
class << self
- def make(&block)
- new.make(&block)
+ def make(version, &block)
+ new(version).make(&block)
end
end
Index: lib/rss/maker.rb
===================================================================
--- lib/rss/maker.rb (revision 15430)
+++ lib/rss/maker.rb (revision 15431)
@@ -8,15 +8,15 @@
def make(version, &block)
m = maker(version)
raise UnsupportedMakerVersionError.new(version) if m.nil?
- m.make(&block)
+ m[:maker].make(m[:version], &block)
end
def maker(version)
MAKERS[version]
end
- def add_maker(version, maker)
- MAKERS[version] = maker
+ def add_maker(version, normalized_version, maker)
+ MAKERS[version] = {:maker => maker, :version => normalized_version}
end
def versions
@@ -24,7 +24,7 @@
end
def makers
- MAKERS.values.uniq
+ MAKERS.values.collect {|info| info[:maker]}.uniq
end
end
end
Index: lib/rss/rss.rb
===================================================================
--- lib/rss/rss.rb (revision 15430)
+++ lib/rss/rss.rb (revision 15431)
@@ -53,7 +53,7 @@
module RSS
- VERSION = "0.2.3"
+ VERSION = "0.2.4"
URI = "http://purl.org/rss/1.0/"
Index: test/rss/test_maker_2.0.rb
===================================================================
--- test/rss/test_maker_2.0.rb (revision 15430)
+++ test/rss/test_maker_2.0.rb (revision 15431)
@@ -430,6 +430,35 @@
test_items(false)
end
+ def test_pubDate_without_description
+ title = "TITLE"
+ link = "http://hoge.com/"
+ description = "text hoge fuga"
+ author = "oprah@o..."
+ pubDate = Time.now
+
+ rss = RSS::Maker.make("2.0") do |maker|
+ setup_dummy_channel(maker)
+
+ maker.items.new_item do |item|
+ item.title = title
+ item.link = link
+ # item.description = description
+ item.author = author
+ item.pubDate = pubDate
+ end
+ end
+ assert_equal(1, rss.items.size)
+ rss.channel.items.each_with_index do |item, i|
+ assert_equal(title, item.title)
+ assert_equal(link, item.link)
+ # assert_equal(description, item.description)
+ assert_equal(author, item.author)
+ assert_equal(pubDate, item.pubDate)
+ assert_equal(pubDate, item.date)
+ end
+ end
+
def test_guid
isPermaLink = "true"
content = "http://inessential.com/2002/09/01.php#a2"
Index: test/rss/test_maker_0.9.rb
===================================================================
--- test/rss/test_maker_0.9.rb (revision 15430)
+++ test/rss/test_maker_0.9.rb (revision 15431)
@@ -13,7 +13,7 @@
setup_dummy_channel(maker)
setup_dummy_image(maker)
end
- assert_equal("0.91", rss.rss_version)
+ assert_equal("0.92", rss.rss_version)
rss = RSS::Maker.make("0.91") do |maker|
setup_dummy_channel(maker)
Index: test/rss/test_version.rb
===================================================================
--- test/rss/test_version.rb (revision 15430)
+++ test/rss/test_version.rb (revision 15431)
@@ -3,7 +3,7 @@
module RSS
class TestVersion < TestCase
def test_version
- assert_equal("0.2.3", ::RSS::VERSION)
+ assert_equal("0.2.4", ::RSS::VERSION)
end
end
end
--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/