diff --git a/ChangeLog b/ChangeLog index 28c713c627..fd49cfcc62 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Mon Aug 24 21:31:37 2009 Kouhei Sutou + + * lib/rss/maker/base.rb, test/rss/test_maker_2.0.rb: fix a bug + that RSS Maker doesn't accept 'false' as guid's isPermaLink. + Reported by Joe Holt. Thanks!!! + Mon Aug 24 18:58:56 2009 NAKAMURA Usaku * include/ruby/missing.h (vsnprintf): rollback a part of r24179, because diff --git a/lib/rss/maker/base.rb b/lib/rss/maker/base.rb index 9ccfba7e84..5d795443a4 100644 --- a/lib/rss/maker/base.rb +++ b/lib/rss/maker/base.rb @@ -238,7 +238,7 @@ module RSS setter = "#{var}=" if target.respond_to?(setter) value = __send__(var) - if value + unless value.nil? target.__send__(setter, value) set = true end diff --git a/test/rss/test_maker_2.0.rb b/test/rss/test_maker_2.0.rb index d4d9832373..705270df4e 100644 --- a/test/rss/test_maker_2.0.rb +++ b/test/rss/test_maker_2.0.rb @@ -508,6 +508,26 @@ module RSS assert_equal(content, guid.content) end + def test_guid_permanent_link_false + content = "http://inessential.com/2002/09/01.php#a2" + + rss = RSS::Maker.make("2.0") do |maker| + setup_dummy_channel(maker) + setup_dummy_item(maker) + + guid = maker.items.last.guid + assert_equal(nil, guid.permanent_link?) + assert_equal(guid.isPermaLink, guid.permanent_link?) + guid.permanent_link = false + assert_equal(false, guid.permanent_link?) + assert_equal(guid.isPermaLink, guid.permanent_link?) + guid.content = content + end + guid = rss.channel.items.last.guid + assert_equal(false, guid.isPermaLink) + assert_equal(content, guid.content) + end + def test_not_valid_guid content = "http://inessential.com/2002/09/01.php#a2"