summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorser <ser@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-04-02 03:53:58 +0000
committerser <ser@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-04-02 03:53:58 +0000
commitc7138f165658f3fee5083a74efb538a2ecc518a8 (patch)
tree8b896005cadacad7a58422f55713d2bca22ef3e0 /lib
parent7bc6f498d585257ec93b4d64b55087ac96af62a4 (diff)
REXML changes
* The main purpose for this change is to get a fix in for nasty bug in XPath. In the new code for the descendant-or-self axis, the document order code was calling the wrong method to do node comparisons, causing a terrible overhead that slowed the axis down to the point where it was unusable. This is a common axis, also known as '//', so this fix is critical. * Using Element#text= on a non-Text, non-String argument caused an error. This has been changed so that the behavior is like puts() -- to_s() is called on the object first. * Refactored the pretty-printing code a little. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6072 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib')
-rw-r--r--lib/rexml/element.rb7
-rw-r--r--lib/rexml/encodings/SHIFT_JIS.rb2
-rw-r--r--lib/rexml/rexml.rb8
-rw-r--r--lib/rexml/xpath_parser.rb2
4 files changed, 12 insertions, 7 deletions
diff --git a/lib/rexml/element.rb b/lib/rexml/element.rb
index b61d811141..d616d0311f 100644
--- a/lib/rexml/element.rb
+++ b/lib/rexml/element.rb
@@ -455,7 +455,12 @@ module REXML
# doc.root.text = 'Russell' #-> '<a><b/>Russell<c/></a>'
# doc.root.text = nil #-> '<a><b/><c/></a>'
def text=( text )
- text = Text.new( text, whitespace(), nil, raw() ) if text.kind_of? String
+ if text.kind_of? String
+ text = Text.new( text, whitespace(), nil, raw() )
+ else
+ text = Text.new( text.to_s, whitespace(), nil, raw() ) unless text.kind_of? Text
+ end
+
old_text = get_text
if text.nil?
old_text.remove unless old_text.nil?
diff --git a/lib/rexml/encodings/SHIFT_JIS.rb b/lib/rexml/encodings/SHIFT_JIS.rb
index e355704a7c..6e8f759373 100644
--- a/lib/rexml/encodings/SHIFT_JIS.rb
+++ b/lib/rexml/encodings/SHIFT_JIS.rb
@@ -1 +1 @@
-require 'rexml/encodings/SHIFT-JIS'
+require 'rexml/encodings/Shift-JIS'
diff --git a/lib/rexml/rexml.rb b/lib/rexml/rexml.rb
index 67b36a87f6..f14b1902d6 100644
--- a/lib/rexml/rexml.rb
+++ b/lib/rexml/rexml.rb
@@ -2,8 +2,8 @@
#
# URL: http://www.germane-software.com/software/rexml
# Author: Sean Russell <ser@germane-software.com>
-# Version: @ANT_VERSION@
-# Date: @ANT_DATE@
+# Version: 3.0.1
+# Date: +2004/093
@@ -21,6 +21,6 @@
# A tutorial is available in docs/tutorial.html
module REXML
Copyright = "Copyright © 2001, 2002, 2003, 2004 Sean Russell <ser@germane-software.com>"
- Date = "+2004/088"
- Version = "3.0.0"
+ Date = "+2004/093"
+ Version = "3.0.1"
end
diff --git a/lib/rexml/xpath_parser.rb b/lib/rexml/xpath_parser.rb
index 377a51e885..d58e75ebdb 100644
--- a/lib/rexml/xpath_parser.rb
+++ b/lib/rexml/xpath_parser.rb
@@ -321,7 +321,7 @@ module REXML
node_idx = []
np = node.node_type == :attribute ? node.element : node
while np.parent and np.parent.node_type == :element
- node_idx << np.parent.children.index( np )
+ node_idx << np.parent.index( np )
np = np.parent
end
new_arry << [ node_idx.reverse.join, node ]