ruby-changes:9541
From: yugui <ko1@a...>
Date: Sat, 27 Dec 2008 11:16:37 +0900 (JST)
Subject: [ruby-changes:9541] Ruby:r21081 (ruby_1_9_1): merges r21074 from trunk into ruby_1_9_1.
yugui 2008-12-27 11:16:12 +0900 (Sat, 27 Dec 2008) New Revision: 21081 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=21081 Log: merges r21074 from trunk into ruby_1_9_1. * lib/csv.rb: Using a more robust transcoding scheme to produce ASCII compatible inspect() messages. [ruby-dev:37591] Modified files: branches/ruby_1_9_1/ChangeLog branches/ruby_1_9_1/lib/csv.rb Index: ruby_1_9_1/ChangeLog =================================================================== --- ruby_1_9_1/ChangeLog (revision 21080) +++ ruby_1_9_1/ChangeLog (revision 21081) @@ -1,3 +1,8 @@ +Sat Dec 27 01:52:39 2008 James Edward Gray II <jeg2@r...> + + * lib/csv.rb: Using a more robust transcoding scheme to produce + ASCII compatible inspect() messages. [ruby-dev:37591] + Mon Dec 22 16:32:21 2008 Yukihiro Matsumoto <matz@r...> * pack.c (pack_pack): encoding of packed string only from 'm', Index: ruby_1_9_1/lib/csv.rb =================================================================== --- ruby_1_9_1/lib/csv.rb (revision 21080) +++ ruby_1_9_1/lib/csv.rb (revision 21081) @@ -199,7 +199,7 @@ # class CSV # The version of the installed library. - VERSION = "2.4.4".freeze + VERSION = "2.4.5".freeze # # A CSV::Row is part Array and part Hash. It retains an order for the fields @@ -487,7 +487,7 @@ end alias_method :to_s, :to_csv - # A summary of fields, by header, in an ASCII-8BIT String. + # A summary of fields, by header, in an ASCII compatible String. def inspect str = ["#<", self.class.to_s] each do |header, field| @@ -495,7 +495,14 @@ ":" << field.inspect end str << ">" - str.map { |s| s.encode("ASCII-8BIT") }.join + begin + str.join + rescue # any encoding error + str.map do |s| + e = Encoding::Converter.asciicompat_encoding(s.encoding) + e ? s.encode(e) : s.force_encoding("ASCII-8BIT") + end.join + end end end @@ -1899,7 +1906,7 @@ # # Returns a simplified description of the key FasterCSV attributes in an - # ASCII-8BIT String. + # ASCII compatible String. # def inspect str = ["<#", self.class.to_s, " io_type:"] @@ -1926,7 +1933,14 @@ str << " headers:" << headers.inspect end str << ">" - str.map { |s| s.encode("ASCII-8BIT") }.join + begin + str.join + rescue # any encoding error + str.map do |s| + e = Encoding::Converter.asciicompat_encoding(s.encoding) + e ? s.encode(e) : s.force_encoding("ASCII-8BIT") + end.join + end end private -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/