* lib/csv.rb: Using a more robust transcoding scheme to produce
ASCII compatible inspect() messages. [ruby-dev:37591] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21074 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
b729ec53a2
commit
7d052b1d74
@ -1,3 +1,8 @@
|
|||||||
|
Sat Dec 27 01:52:39 2008 James Edward Gray II <jeg2@ruby-lang.org>
|
||||||
|
|
||||||
|
* lib/csv.rb: Using a more robust transcoding scheme to produce
|
||||||
|
ASCII compatible inspect() messages. [ruby-dev:37591]
|
||||||
|
|
||||||
Fri Dec 26 18:04:10 2008 Tanaka Akira <akr@fsij.org>
|
Fri Dec 26 18:04:10 2008 Tanaka Akira <akr@fsij.org>
|
||||||
|
|
||||||
* io.c (fptr_finalize): don't allocate objects if noraise.
|
* io.c (fptr_finalize): don't allocate objects if noraise.
|
||||||
|
24
lib/csv.rb
24
lib/csv.rb
@ -199,7 +199,7 @@ require "stringio"
|
|||||||
#
|
#
|
||||||
class CSV
|
class CSV
|
||||||
# The version of the installed library.
|
# 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
|
# A CSV::Row is part Array and part Hash. It retains an order for the fields
|
||||||
@ -487,7 +487,7 @@ class CSV
|
|||||||
end
|
end
|
||||||
alias_method :to_s, :to_csv
|
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
|
def inspect
|
||||||
str = ["#<", self.class.to_s]
|
str = ["#<", self.class.to_s]
|
||||||
each do |header, field|
|
each do |header, field|
|
||||||
@ -495,7 +495,14 @@ class CSV
|
|||||||
":" << field.inspect
|
":" << field.inspect
|
||||||
end
|
end
|
||||||
str << ">"
|
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
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -1899,7 +1906,7 @@ class CSV
|
|||||||
|
|
||||||
#
|
#
|
||||||
# Returns a simplified description of the key FasterCSV attributes in an
|
# Returns a simplified description of the key FasterCSV attributes in an
|
||||||
# ASCII-8BIT String.
|
# ASCII compatible String.
|
||||||
#
|
#
|
||||||
def inspect
|
def inspect
|
||||||
str = ["<#", self.class.to_s, " io_type:"]
|
str = ["<#", self.class.to_s, " io_type:"]
|
||||||
@ -1926,7 +1933,14 @@ class CSV
|
|||||||
str << " headers:" << headers.inspect
|
str << " headers:" << headers.inspect
|
||||||
end
|
end
|
||||||
str << ">"
|
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
|
||||||
|
|
||||||
private
|
private
|
||||||
|
Loading…
x
Reference in New Issue
Block a user