From da672779e241c043133fbd549121cdecc2fc986a Mon Sep 17 00:00:00 2001 From: kou Date: Sat, 11 Jun 2011 07:29:48 +0000 Subject: * lib/rexml/formatters/pretty.rb (REXML::Formatters::Pretty#write_text), test/rexml/test_core.rb (Tester#test_pretty_format_long_text_finite): don't ignore 'width' parameter in pretty formatter. fixes #4498 Reported by Michael Frasca. Thanks!!! git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31997 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 9 +++++++ lib/rexml/formatters/pretty.rb | 2 +- test/rexml/test_core.rb | 61 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 71 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index f1d81769de..de88271051 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +Sat Jun 11 16:28:25 2011 Kouhei Sutou + + * lib/rexml/formatters/pretty.rb + (REXML::Formatters::Pretty#write_text), + test/rexml/test_core.rb + (Tester#test_pretty_format_long_text_finite): don't ignore + 'width' parameter in pretty formatter. fixes #4498 + Reported by Michael Frasca. Thanks!!! + Sat Jun 11 16:11:36 2011 Kouhei Sutou * test/rexml/test_core.rb diff --git a/lib/rexml/formatters/pretty.rb b/lib/rexml/formatters/pretty.rb index 1747397700..63f726e8c3 100644 --- a/lib/rexml/formatters/pretty.rb +++ b/lib/rexml/formatters/pretty.rb @@ -88,7 +88,7 @@ module REXML s = node.to_s() s.gsub!(/\s/,' ') s.squeeze!(" ") - s = wrap(s, 80-@level) + s = wrap(s, @width - @level) s = indent_text(s, @level, " ", true) output << (' '*@level + s) end diff --git a/test/rexml/test_core.rb b/test/rexml/test_core.rb index bcc72695e4..e530cc16c6 100644 --- a/test/rexml/test_core.rb +++ b/test/rexml/test_core.rb @@ -1153,6 +1153,67 @@ EOL output) end + def test_pretty_format_deep_indent + n = 6 + elements = "" + n.times do |i| + elements << "" + elements << "element#{i} " * 5 + end + (n - 1).downto(0) do |i| + elements << "" + end + xml = "#{elements}" + document = REXML::Document.new(xml) + formatter = REXML::Formatters::Pretty.new + formatter.width = 20 + output = "" + formatter.write(document, output) + assert_equal(<<-XML.strip, output) + + + element0 + element0 + element0 + element0 + element0 + + element1 + element1 + element1 + element1 + element1 + + element2 + element2 + element2 + element2 + element2 + + element3 + element3 + element3 + element3 + element3 + + element4 + element4 + element4 + element4 + element4 + + + element5 element5 element5 element5 element5 + + + + + + + + XML + end + def test_ticket_58 doc = REXML::Document.new doc << REXML::XMLDecl.default -- cgit v1.2.3