Bug #9988 ยป csv-write-headers-empty-fix.diff
lib/csv.rb | ||
---|---|---|
# track our own lineno since IO gets confused about line-ends is CSV fields
|
||
@lineno = 0
|
||
# make sure headers have been assigned
|
||
if header_row? and [Array, String].include? @use_headers.class and @write_headers
|
||
parse_headers # won't read data for Array or String
|
||
self << @headers
|
||
end
|
||
end
|
||
#
|
||
... | ... | |
#
|
||
def <<(row)
|
||
# make sure headers have been assigned
|
||
if header_row? and [Array, String].include? @use_headers.class
|
||
if header_row? and [Array, String].include? @use_headers.class and !@write_headers
|
||
parse_headers # won't read data for Array or String
|
||
self << @headers if @write_headers
|
||
end
|
||
# handle CSV::Row objects and Hashes
|
test/csv/test_interface.rb | ||
---|---|---|
end
|
||
end
|
||
def test_write_headers_empty
|
||
File.unlink(@path)
|
||
CSV.open( @path, "wb", headers: "b|a|c",
|
||
write_headers: true,
|
||
col_sep: "|" ) do |csv|
|
||
end
|
||
File.open(@path, "rb") do |f|
|
||
assert_equal("b|a|c", f.gets.strip)
|
||
end
|
||
end
|
||
def test_append # aliased add_row() and puts()
|
||
File.unlink(@path)
|
||