mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* lib/csv.rb: Fixed test failures caused by changes to Ruby.
* test/csv/tc_serialization, test/csv/tc_csv_parsing, test/csv/tc_features: Fixed test failures caused by changes to Ruby. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14662 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
33a071016b
commit
a2443bdcf9
5 changed files with 21 additions and 10 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
Tue Dec 25 14:09:16 2007 James Edward Gray II <jeg2@ruby-lang.org>
|
||||||
|
|
||||||
|
* lib/csv.rb: Fixed test failures caused by changes to Ruby.
|
||||||
|
|
||||||
|
* test/csv/tc_serialization, test/csv/tc_csv_parsing, test/csv/tc_features:
|
||||||
|
Fixed test failures caused by changes to Ruby.
|
||||||
|
|
||||||
Tue Dec 25 14:11:57 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
Tue Dec 25 14:11:57 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
* io.c (io_encoding_set): missing return type.
|
* io.c (io_encoding_set): missing return type.
|
||||||
|
|
16
lib/csv.rb
16
lib/csv.rb
|
@ -187,10 +187,12 @@ class CSV
|
||||||
@header_row = header_row
|
@header_row = header_row
|
||||||
|
|
||||||
# handle extra headers or fields
|
# handle extra headers or fields
|
||||||
@row = if headers.size > fields.size
|
larger, smaller, transform = headers.size > fields.size ?
|
||||||
headers.zip(fields)
|
[headers, fields, :to_a] :
|
||||||
else
|
[fields, headers, :reverse]
|
||||||
fields.zip(headers).map { |pair| pair.reverse }
|
@row = Array.new
|
||||||
|
larger.each_with_index do |e, i|
|
||||||
|
@row << [e, smaller[i]].send(transform)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -1812,7 +1814,8 @@ class CSV
|
||||||
# see if we are converting headers or fields
|
# see if we are converting headers or fields
|
||||||
converters = headers ? @header_converters : @converters
|
converters = headers ? @header_converters : @converters
|
||||||
|
|
||||||
fields.enum_for(:each_with_index).map do |field, index| # map_with_index
|
converted = Array.new
|
||||||
|
fields.each_with_index do |field, index|
|
||||||
converters.each do |converter|
|
converters.each do |converter|
|
||||||
field = if converter.arity == 1 # straight field converter
|
field = if converter.arity == 1 # straight field converter
|
||||||
converter[field]
|
converter[field]
|
||||||
|
@ -1822,8 +1825,9 @@ class CSV
|
||||||
end
|
end
|
||||||
break unless field.is_a? String # short-curcuit pipeline for speed
|
break unless field.is_a? String # short-curcuit pipeline for speed
|
||||||
end
|
end
|
||||||
field # return final state of each field, converted or original
|
converted << field # final state of each field, converted or original
|
||||||
end
|
end
|
||||||
|
converted
|
||||||
end
|
end
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
|
@ -123,7 +123,7 @@ class TestCSVParsing < Test::Unit::TestCase
|
||||||
line,4,some\rjunk
|
line,4,some\rjunk
|
||||||
line,5,jkl
|
line,5,jkl
|
||||||
END_DATA
|
END_DATA
|
||||||
lines = bad_data.to_a
|
lines = bad_data.lines.to_a
|
||||||
assert_equal(6, lines.size)
|
assert_equal(6, lines.size)
|
||||||
assert_match(/\Aline,4/, lines.find { |l| l =~ /some\rjunk/ })
|
assert_match(/\Aline,4/, lines.find { |l| l =~ /some\rjunk/ })
|
||||||
|
|
||||||
|
@ -147,7 +147,7 @@ class TestCSVParsing < Test::Unit::TestCase
|
||||||
line,4,8'10"
|
line,4,8'10"
|
||||||
line,5,jkl
|
line,5,jkl
|
||||||
END_DATA
|
END_DATA
|
||||||
lines = bad_data.to_a
|
lines = bad_data.lines.to_a
|
||||||
assert_equal(6, lines.size)
|
assert_equal(6, lines.size)
|
||||||
assert_match(/\Aline,4/, lines.find { |l| l =~ /8'10"/ })
|
assert_match(/\Aline,4/, lines.find { |l| l =~ /8'10"/ })
|
||||||
|
|
||||||
|
|
|
@ -82,7 +82,7 @@ class TestCSVFeatures < Test::Unit::TestCase
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_lineno
|
def test_lineno
|
||||||
assert_equal(5, @sample_data.to_a.size)
|
assert_equal(5, @sample_data.lines.to_a.size)
|
||||||
|
|
||||||
4.times do |line_count|
|
4.times do |line_count|
|
||||||
assert_equal(line_count, @csv.lineno)
|
assert_equal(line_count, @csv.lineno)
|
||||||
|
|
|
@ -13,7 +13,7 @@ require "csv"
|
||||||
# An example of how to provide custom CSV serialization.
|
# An example of how to provide custom CSV serialization.
|
||||||
class Hash
|
class Hash
|
||||||
def self.csv_load( meta, headers, fields )
|
def self.csv_load( meta, headers, fields )
|
||||||
self[*headers.zip(fields).flatten.map { |e| eval(e) }]
|
self[*headers.zip(fields).to_a.flatten.map { |e| eval(e) }]
|
||||||
end
|
end
|
||||||
|
|
||||||
def csv_headers
|
def csv_headers
|
||||||
|
|
Loading…
Add table
Reference in a new issue