From 3f817764e24eb05aceef884e213d4a7043c292fa Mon Sep 17 00:00:00 2001 From: kou Date: Sat, 3 Nov 2012 03:53:09 +0000 Subject: * lib/rexml/document.rb (REXML::Document#write): Document encoding option. Now different encoding between XML file's encoding and XML declaration's encodiong is support. [Feature #4872] (work in progress) * lib/rexml/xmldecl.rb (REXML::XMLDecl#write): Always use XMLDecl's encoding. * test/rexml/test_document.rb: Update tests for the above change. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37440 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/rexml/document.rb | 8 ++++++-- lib/rexml/xmldecl.rb | 6 +----- 2 files changed, 7 insertions(+), 7 deletions(-) (limited to 'lib/rexml') diff --git a/lib/rexml/document.rb b/lib/rexml/document.rb index 5508a60be4..f9fdbdaab3 100644 --- a/lib/rexml/document.rb +++ b/lib/rexml/document.rb @@ -145,8 +145,8 @@ module REXML end # :call-seq: - # doc.write(output=$stdout, indent=-1, transtive=false, ie_hack=false) - # doc.write(options={:output => $stdout, :indent => -1, :transtive => false, :ie_hack => false}) + # doc.write(output=$stdout, indent=-1, transtive=false, ie_hack=false, encoding=nil) + # doc.write(options={:output => $stdout, :indent => -1, :transtive => false, :ie_hack => false, :encoding => nil}) # # Write the XML tree out, optionally with indent. This writes out the # entire XML document, including XML declarations, doctype declarations, @@ -199,6 +199,10 @@ module REXML # unable to parse proper XML, we have to provide a hack to generate XML # that IE's limited abilities can handle. This hack inserts a space # before the /> on empty tags. Defaults to false + # encoding:: + # Encoding name as String. Change output encoding to specified encoding + # instead of encoding in XML declaration. + # Defaults to nil. It means encoding in XML declaration is used. def write(*arguments) if arguments.size == 1 and arguments[0].class == Hash options = arguments[0] diff --git a/lib/rexml/xmldecl.rb b/lib/rexml/xmldecl.rb index 6b48a6f8ea..783c9233dc 100644 --- a/lib/rexml/xmldecl.rb +++ b/lib/rexml/xmldecl.rb @@ -44,11 +44,7 @@ module REXML def write(writer, indent=-1, transitive=false, ie_hack=false) return nil unless @writethis or writer.kind_of? Output writer << START.sub(/\\/u, '') - if writer.kind_of? Output - writer << " #{content writer.encoding}" - else - writer << " #{content encoding}" - end + writer << " #{content encoding}" writer << STOP.sub(/\\/u, '') end -- cgit v1.2.3