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:
parent
adb4439f85
commit
6a738f2265
6 changed files with 43 additions and 21 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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><a></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
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue