1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

Documentation fixes and a patch to fix whitespace handling.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6043 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
ser 2004-03-28 22:36:15 +00:00
parent adb4439f85
commit 6a738f2265
6 changed files with 43 additions and 21 deletions

View file

@ -39,7 +39,10 @@ module REXML
# indentation will be this number of spaces, and children will be
# indented an additional amount.
# transitive::
# Who knows?
# 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 absolute *value* of the document -- that is, it leaves the value
# and number of Text nodes in the document unchanged.
# 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

View file

@ -92,7 +92,10 @@ module REXML
# indentation will be this number of spaces, and children will be
# indented an additional amount.
# transitive::
# Who knows?
# 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 absolute *value* of the document -- that is, it leaves the value
# and number of Text nodes in the document unchanged.
# 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

View file

@ -145,7 +145,10 @@ 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 absolute *value* of the document -- that is, it leaves the value
# and number of Text nodes in the document unchanged.
# 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
@ -191,7 +194,7 @@ module REXML
build_context[-1] << event[1]
else
build_context.add(
Text.new( event[1], true, nil, true )
Text.new( event[1], build_context.whitespace, nil, true )
) unless (
event[1].strip.size==0 and
build_context.ignore_whitespace_nodes

View file

@ -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

View file

@ -20,7 +20,7 @@
# be accessed online at http://www.germane-software.com/software/rexml_doc
# A tutorial is available in docs/tutorial.html
module REXML
Copyright = "Copyright #{Time.now.year} Sean Russell <ser@germane-software.com>"
Date = "+2004/047"
Version = "2.7.4.2"
Copyright = "Copyright © 2001, 2002, 2003, 2004 Sean Russell <ser@germane-software.com>"
Date = "+2004/088"
Version = "3.0.0"
end

View file

@ -175,6 +175,20 @@ module REXML
return string[0,place] + "\n" + wrap(string[place+1..-1], width)
end
end
# Sets the contents of this text node. This expects the text to be
# unnormalized. It returns self.
#
# e = Element.new( "a" )
# e.add_text( "foo" ) # <a>foo</a>
# e[0].value = "bar" # <a>bar</a>
# e[0].value = "<a>" # <a>&lt;a&gt;</a>
def value=( val )
@string = val.gsub( /\r\n?/, "\n" )
@unnormalized = nil
@normalized = nil
@raw = false
end
def indent(string, level=1, style="\t", indentfirstline=true)
return string if level < 0
@ -190,17 +204,13 @@ module REXML
def write( writer, indent=-1, transitive=false, ie_hack=false )
s = to_s()
if not (@parent and @parent.whitespace) then
s = wrap(s, 60, false) if @parent and @parent.context[:wordwrap] == :all
if @parent and not @parent.context[:indentstyle].nil? then
indentstyle = @parent.context[:indentstyle]
else
indentstyle = ' '
end
if s.count("\n") > 0 and indent > 0 then
s = indent(s, indent, indentstyle, false)
end
end
if not (@parent and @parent.whitespace) then
s = wrap(s, 60, false) if @parent and @parent.context[:wordwrap] == :all
if @parent and not @parent.context[:indentstyle].nil? and indent > 0 and s.count("\n") > 0
s = indent(s, indent, @parent.context[:indentstyle], false)
end
s.squeeze!(" \n\t") if @parent and !@parent.whitespace
end
writer << s
end