diff options
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | lib/rexml/formatters/pretty.rb | 2 | ||||
-rw-r--r-- | test/rexml/test_core.rb | 61 |
3 files changed, 71 insertions, 1 deletions
@@ -1,3 +1,12 @@ +Sat Jun 11 16:28:25 2011 Kouhei Sutou <kou@cozmixng.org> + + * 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 <kou@cozmixng.org> * 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 << "<element#{i}>" + elements << "element#{i} " * 5 + end + (n - 1).downto(0) do |i| + elements << "</element#{i}>" + end + xml = "<doc>#{elements}</doc>" + document = REXML::Document.new(xml) + formatter = REXML::Formatters::Pretty.new + formatter.width = 20 + output = "" + formatter.write(document, output) + assert_equal(<<-XML.strip, output) +<doc> + <element0> + element0 + element0 + element0 + element0 + element0 + <element1> + element1 + element1 + element1 + element1 + element1 + <element2> + element2 + element2 + element2 + element2 + element2 + <element3> + element3 + element3 + element3 + element3 + element3 + <element4> + element4 + element4 + element4 + element4 + element4 + + <element5> + element5 element5 element5 element5 element5 + </element5> + </element4> + </element3> + </element2> + </element1> + </element0> +</doc> + XML + end + def test_ticket_58 doc = REXML::Document.new doc << REXML::XMLDecl.default |