[前][次][番号順一覧][スレッド一覧]

ruby-changes:17811

From: jeg2 <ko1@a...>
Date: Thu, 18 Nov 2010 00:03:33 +0900 (JST)
Subject: [ruby-changes:17811] Ruby:r29822 (trunk): * lib/csv.rb: Upgrading output encoding with ASCII content

jeg2	2010-11-18 00:03:25 +0900 (Thu, 18 Nov 2010)

  New Revision: 29822

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=29822

  Log:
    * lib/csv.rb: Upgrading output encoding with ASCII content 
      as needed.  [ruby-core:33229]

  Modified files:
    trunk/ChangeLog
    trunk/lib/csv.rb
    trunk/test/csv/test_encodings.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 29821)
+++ ChangeLog	(revision 29822)
@@ -1,3 +1,8 @@
+Thu Nov 18 00:02:17 2010  James Edward Gray II  <jeg2@r...>
+
+	* lib/csv.rb: Upgrading output encoding with ASCII content 
+	  as needed.  [ruby-core:33229]
+
 Wed Nov 17 23:19:21 2010  Nobuyoshi Nakada  <nobu@r...>
 
 	* win32/configure.bat: remove quotes from arguments to be quoted.
@@ -43,7 +48,7 @@
 
 	* enc/euc_jp.c (property_name_to_ctype): ditto.
 
-Tue Nov 17 08:54:04 2010  James Edward Gray II  <jeg2@r...>
+Wed Nov 17 08:54:04 2010  James Edward Gray II  <jeg2@r...>
 
 	* lib/csv.rb: Upgrading output encoding as needed.  [ruby-core:33135]
 
Index: lib/csv.rb
===================================================================
--- lib/csv.rb	(revision 29821)
+++ lib/csv.rb	(revision 29822)
@@ -1715,8 +1715,7 @@
     output = row.map(&@quote).join(@col_sep) + @row_sep  # quote and separate
     if @io.is_a?(StringIO)             and
        output.encoding != raw_encoding and
-       ( compatible_encoding = Encoding.compatible?( @io.string.encoding,
-                                                     output.encoding ) )
+       (compatible_encoding = Encoding.compatible?(@io.string, output))
       @io = StringIO.new(@io.string.force_encoding(compatible_encoding))
       @io.seek(0, IO::SEEK_END)
     end
Index: test/csv/test_encodings.rb
===================================================================
--- test/csv/test_encodings.rb	(revision 29821)
+++ test/csv/test_encodings.rb	(revision 29822)
@@ -225,6 +225,14 @@
     assert_equal("UTF-8",    data.join.encoding.name)
     assert_equal("UTF-8",    data.to_csv.encoding.name)
   end
+  
+  def test_encoding_is_upgraded_for_ascii_content_during_writing_as_needed
+    data = ["foo".force_encoding("ISO-8859-1"), "\u3042"]
+    assert_equal("ISO-8859-1", data.first.encoding.name)
+    assert_equal("UTF-8",      data.last.encoding.name)
+    assert_equal("UTF-8",      data.join.encoding.name)
+    assert_equal("UTF-8",      data.to_csv.encoding.name)
+  end
 
   private
   

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]