From 5beaa53ad54345e580d9d6fc6afedd7fd067b360 Mon Sep 17 00:00:00 2001 From: nagachika Date: Sun, 23 Jul 2017 07:20:05 +0000 Subject: [PATCH] merge revision(s) 58552: [Backport #13531] rss: Accept empty text element as valid element Parser has been accepted it but XML serializer wasn't accepted. Reported by stefano frabetti. Thanks!!! [ruby-core:80965] [Bug #13531] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_4@59396 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/rss/rss.rb | 2 +- test/rss/test_to_s.rb | 24 ++++++++++++++++++++++++ version.h | 2 +- 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/lib/rss/rss.rb b/lib/rss/rss.rb index d161366f92..00db219d4e 100644 --- a/lib/rss/rss.rb +++ b/lib/rss/rss.rb @@ -957,7 +957,7 @@ EOC children = child children.any? {|c| c.have_required_elements?} else - !child.to_s.empty? + not child.nil? end else true diff --git a/test/rss/test_to_s.rb b/test/rss/test_to_s.rb index b8ef0d8da4..bbdd74ef0b 100644 --- a/test/rss/test_to_s.rb +++ b/test/rss/test_to_s.rb @@ -109,6 +109,30 @@ module RSS '[ruby-core:70667] [Bug #11509]') end + def test_20_empty_text + title = "Blog entries" + link = "http://blog.example.com/" + description = "" + rss = RSS::Maker.make("2.0") do |maker| + maker.channel.title = title + maker.channel.link = link + maker.channel.description = description + end + + parsed_rss = RSS::Parser.parse(rss.to_s) + assert_equal({ + title: title, + link: link, + description: description, + }, + { + title: parsed_rss.channel.title, + link: parsed_rss.channel.link, + description: parsed_rss.channel.description, + }, + "[ruby-core:80965] [Bug #13531]") + end + private def setup_xml_declaration_info @version = "1.0" diff --git a/version.h b/version.h index bb1128f2c3..b188f9b420 100644 --- a/version.h +++ b/version.h @@ -1,6 +1,6 @@ #define RUBY_VERSION "2.4.2" #define RUBY_RELEASE_DATE "2017-07-23" -#define RUBY_PATCHLEVEL 147 +#define RUBY_PATCHLEVEL 148 #define RUBY_RELEASE_YEAR 2017 #define RUBY_RELEASE_MONTH 7