summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog11
-rw-r--r--lib/rexml/document.rb1
-rw-r--r--lib/rexml/element.rb1
-rw-r--r--lib/rexml/formatters/transitive.rb4
4 files changed, 16 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 677d26c8fe..b10b2e7918 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+Thu Dec 11 10:18:35 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * lib/rexml/document.rb (REXML::Document#write): require
+ rexml/formatters/transitive if transitive flag is on. a patch
+ from akira yamada in [ruby-dev:36230]. fix #553
+
+ * lib/rexml/element.rb (REXML::Element#write): ditto.
+
+ * lib/rexml/formatters/transitive.rb (REXML::Formatters::Transitive#write_element):
+ add hack for IE. [ruby-dev:36230]
+
Thu Dec 11 02:37:22 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
* math.c (domain_check): should not raise EDOM exception for NaN
diff --git a/lib/rexml/document.rb b/lib/rexml/document.rb
index 28c3a781db..48f1a0ec6c 100644
--- a/lib/rexml/document.rb
+++ b/lib/rexml/document.rb
@@ -186,6 +186,7 @@ module REXML
end
formatter = if indent > -1
if transitive
+ require "rexml/formatters/transitive"
REXML::Formatters::Transitive.new( indent, ie_hack )
else
REXML::Formatters::Pretty.new( indent, ie_hack )
diff --git a/lib/rexml/element.rb b/lib/rexml/element.rb
index a1c01e7de7..92308a5c99 100644
--- a/lib/rexml/element.rb
+++ b/lib/rexml/element.rb
@@ -691,6 +691,7 @@ module REXML
Kernel.warn("#{self.class.name}.write is deprecated. See REXML::Formatters")
formatter = if indent > -1
if transitive
+ require "rexml/formatters/transitive"
REXML::Formatters::Transitive.new( indent, ie_hack )
else
REXML::Formatters::Pretty.new( indent, ie_hack )
diff --git a/lib/rexml/formatters/transitive.rb b/lib/rexml/formatters/transitive.rb
index 1d80f21fbb..6083f0390b 100644
--- a/lib/rexml/formatters/transitive.rb
+++ b/lib/rexml/formatters/transitive.rb
@@ -12,9 +12,10 @@ module REXML
# formatted. Since this formatter does not alter whitespace nodes, the
# results of formatting already formatted XML will be odd.
class Transitive < Default
- def initialize( indentation=2 )
+ def initialize( indentation=2, ie_hack=false )
@indentation = indentation
@level = 0
+ @ie_hack = ie_hack
end
protected
@@ -29,6 +30,7 @@ module REXML
output << "\n"
output << ' '*@level
if node.children.empty?
+ output << " " if @ie_hack
output << "/"
else
output << ">"