diff options
Diffstat (limited to 'lib/rexml/element.rb')
-rw-r--r-- | lib/rexml/element.rb | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/lib/rexml/element.rb b/lib/rexml/element.rb index ffaeddbf54..b61d811141 100644 --- a/lib/rexml/element.rb +++ b/lib/rexml/element.rb @@ -98,8 +98,9 @@ module REXML # is the case if: # 1. Neither :+respect_whitespace+ nor :+compress_whitespace+ has any value # 2. The context has :+respect_whitespace+ set to :+all+ or - # an array containing the name of this element, and :+compress_whitespace+ - # isn't set to :+all+ or an array containing the name of this element. + # an array containing the name of this element, and + # :+compress_whitespace+ isn't set to :+all+ or an array containing the + # name of this element. # The evaluation is tested against +expanded_name+, and so is namespace # sensitive. def whitespace @@ -606,7 +607,9 @@ module REXML # indentation will be this number of spaces, and children will be # indented an additional amount. Defaults to -1 # transitive:: - # What the heck does this do? Defaults to false + # If transitive is true and indent is >= 0, then the output will be + # pretty-printed in such a way that the added whitespace does not affect + # the parse tree of the document # ie_hack:: # Internet Explorer is the worst piece of crap to have ever been # written, with the possible exception of Windows itself. Since IE is @@ -632,7 +635,7 @@ module REXML else if transitive and indent>-1 and !@children[0].kind_of? Text writer << "\n" - indent writer, indent+2 + indent writer, indent+1 end writer << ">" write_children( writer, indent, transitive, ie_hack ) @@ -640,7 +643,7 @@ module REXML end if transitive and indent>-1 writer << "\n" - indent -= 2 if next_sibling.nil? + indent -= 1 if next_sibling.nil? indent(writer, indent) end writer << ">" @@ -661,12 +664,10 @@ module REXML # A private helper method def write_children( writer, indent, transitive, ie_hack ) cr = (indent < 0) ? '' : "\n" - #if size == 1 and @children[0].kind_of?(Text) - # self[0].write( writer, -1 ) if indent == -1 each { |child| child.write( writer, indent, transitive, ie_hack ) } else - next_indent = indent+2 + next_indent = indent+1 last_child=nil each { |child| unless child.kind_of? Text or last_child.kind_of? Text or transitive |