ruby-changes:19950
From: kou <ko1@a...>
Date: Sat, 11 Jun 2011 16:29:55 +0900 (JST)
Subject: [ruby-changes:19950] kou:r31997 (trunk): * lib/rexml/formatters/pretty.rb
kou 2011-06-11 16:29:48 +0900 (Sat, 11 Jun 2011) New Revision: 31997 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=31997 Log: * 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!!! Modified files: trunk/ChangeLog trunk/lib/rexml/formatters/pretty.rb trunk/test/rexml/test_core.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 31996) +++ ChangeLog (revision 31997) @@ -1,3 +1,12 @@ +Sat Jun 11 16:28:25 2011 Kouhei Sutou <kou@c...> + + * 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@c...> * test/rexml/test_core.rb Index: lib/rexml/formatters/pretty.rb =================================================================== --- lib/rexml/formatters/pretty.rb (revision 31996) +++ lib/rexml/formatters/pretty.rb (revision 31997) @@ -88,7 +88,7 @@ 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 Index: test/rexml/test_core.rb =================================================================== --- test/rexml/test_core.rb (revision 31996) +++ test/rexml/test_core.rb (revision 31997) @@ -1153,6 +1153,67 @@ 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 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/