diff options
author | kou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-09-16 23:48:17 +0000 |
---|---|---|
committer | kou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-09-16 23:48:17 +0000 |
commit | 69f10cab7ab8fa737c6f848bccde97b4bbe4871d (patch) | |
tree | 193a1958ffcfb5b2bfa310bca63836569217ce16 | |
parent | 352cf3ca5c770773b9ac84cc1588ef0b6258f648 (diff) | |
download | ruby-69f10cab7ab8fa737c6f848bccde97b4bbe4871d.tar.gz ruby-69f10cab7ab8fa737c6f848bccde97b4bbe4871d.tar.xz ruby-69f10cab7ab8fa737c6f848bccde97b4bbe4871d.zip |
* lib/rss/maker/base.rb (RSS::Maker::ItemsBase#normalize): fixed
strange RSS::Maker::Item#max_size behavior.
Thanks to Kazuhiko <kazuhiko@fdiary.net>.
* test/rss/test_maker_1.0.rb (RSS::TestMaker10#test_items): ditto.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@9190 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | lib/rss/maker/base.rb | 6 | ||||
-rw-r--r-- | test/rss/test_maker_1.0.rb | 54 |
3 files changed, 67 insertions, 1 deletions
@@ -1,3 +1,11 @@ +Sat Sep 17 08:35:39 2005 Kouhei Sutou <kou@cozmixng.org> + + * lib/rss/maker/base.rb (RSS::Maker::ItemsBase#normalize): fixed + strange RSS::Maker::Item#max_size behavior. + Thanks to Kazuhiko <kazuhiko@fdiary.net>. + + * test/rss/test_maker_1.0.rb (RSS::TestMaker10#test_items): ditto. + Sat Sep 17 08:02:53 2005 Shugo Maeda <shugo@ruby-lang.org> * lib/net/imap.rb: supported DIGEST-MD5. Thanks, Mathieu Arnold. diff --git a/lib/rss/maker/base.rb b/lib/rss/maker/base.rb index 4972821cf..dbd8bf904 100644 --- a/lib/rss/maker/base.rb +++ b/lib/rss/maker/base.rb @@ -401,7 +401,11 @@ EOC end def normalize - sort_if_need[0..@max_size] + if @max_size >= 0 + sort_if_need[0...@max_size] + else + sort_if_need[0..@max_size] + end end def current_element(rss) diff --git a/test/rss/test_maker_1.0.rb b/test/rss/test_maker_1.0.rb index 1fa86662e..dca50f7e6 100644 --- a/test/rss/test_maker_1.0.rb +++ b/test/rss/test_maker_1.0.rb @@ -256,6 +256,60 @@ module RSS assert_equal("#{link}#{i}", item.link) assert_equal("#{description}#{i}", item.description) end + + max_size = item_size / 2 + rss = RSS::Maker.make("1.0") do |maker| + setup_dummy_channel(maker) + + item_size.times do |i| + item = maker.items.new_item + item.title = "#{title}#{i}" + item.link = "#{link}#{i}" + item.description = "#{description}#{i}" + end + maker.items.max_size = max_size + end + assert_equal(max_size, rss.items.size) + rss.items.each_with_index do |item, i| + assert_equal("#{link}#{i}", item.about) + assert_equal("#{title}#{i}", item.title) + assert_equal("#{link}#{i}", item.link) + assert_equal("#{description}#{i}", item.description) + end + + max_size = 0 + rss = RSS::Maker.make("1.0") do |maker| + setup_dummy_channel(maker) + + item_size.times do |i| + item = maker.items.new_item + item.title = "#{title}#{i}" + item.link = "#{link}#{i}" + item.description = "#{description}#{i}" + end + maker.items.max_size = max_size + end + assert_equal(max_size, rss.items.size) + + max_size = -2 + rss = RSS::Maker.make("1.0") do |maker| + setup_dummy_channel(maker) + + item_size.times do |i| + item = maker.items.new_item + item.title = "#{title}#{i}" + item.link = "#{link}#{i}" + item.description = "#{description}#{i}" + end + maker.items.max_size = max_size + end + assert_equal(item_size + max_size + 1, rss.items.size) + rss.items.each_with_index do |item, i| + assert_equal("#{link}#{i}", item.about) + assert_equal("#{title}#{i}", item.title) + assert_equal("#{link}#{i}", item.link) + assert_equal("#{description}#{i}", item.description) + end end def test_not_valid_items |