[ruby-core:60573] [ruby-trunk - Bug #8784] CSV - Empty fields are discarded when col_sep is a space

From: sylvain.laperche@...
Date: 2014-02-08 05:53:30 UTC
List: ruby-core #60573
Issue #8784 has been updated by Sylvain Laperche.

File bug_csv_col_sep.rb added

The bug is still present in Ruby 2.1.0

    % ruby -v
    ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-linux]

The attached script prints:

    [["2009", "2", "3", "8", "0", nil, "30.1", nil, nil]]
    [["2009", "2", "3", "8", "0", "30.1", nil]]

instead of:

    [["2009", "2", "3", "8", "0", nil, "30.1", nil, nil]]
    [["2009", "2", "3", "8", "0", nil, "30.1", nil, nil]]

----------------------------------------
Bug #8784: CSV - Empty fields are discarded when col_sep is a space
https://bugs.ruby-lang.org/issues/8784#change-45021

* Author: Sylvain Laperche
* Status: Open
* Priority: Normal
* Assignee: 
* Category: 
* Target version: 
* ruby -v: ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]
* Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN
----------------------------------------
When using space as column delimiter, empty fields are discarded.
With other delimiters, like comma, empty fields are correctly retrieved.

The following code reproduces the problem:
********************************************************************************
#!/usr/bin/env ruby

require 'csv'

print(CSV.parse('2009,2,3,8,0,,30.1,,'))
puts
print(CSV.parse('2009 2 3 8 0  30.1  ', col_sep: ' '))
puts
********************************************************************************

*Expected output*
[["2009", "2", "3", "8", "0", nil, "30.1", nil, nil]]
[["2009", "2", "3", "8", "0", nil, "30.1", nil, nil]]

*Current output*
[["2009", "2", "3", "8", "0", nil, "30.1", nil, nil]]
[["2009", "2", "3", "8", "0", "30.1", nil]]


---Files--------------------------------
bug_csv_col_sep.rb (142 Bytes)


-- 
http://bugs.ruby-lang.org/

In This Thread