summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--lib/rss/maker/base.rb2
-rw-r--r--test/rss/test_maker_2.0.rb20
3 files changed, 27 insertions, 1 deletions
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 <kou@cozmixng.org>
+
+ * 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 <usa@ruby-lang.org>
* 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"