Issue #12839 has been updated by kou (Kouhei Sutou).

Status changed from Assigned to Closed

This code works again with the latest csv.

```ruby
require "csv"

CSV.parse(%|,""|, converters: lambda{|v| v || ""})
#=> [["", ""]]
```

----------------------------------------
Feature #12839: CSV - Give not nil but empty strings for empty fields
https://bugs.ruby-lang.org/issues/12839#change-70935

* Author: 5.5 (5 5)
* Status: Closed
* Priority: Normal
* Assignee: kou (Kouhei Sutou)
* Target version: 
----------------------------------------
The CSV parser gives nil for empty fields.

```rb
require "csv"

CSV.parse(%|,""|) #=> [[nil, ""]]
```

The above behavior maybe be suitable for certain programmers, but I hope to get `[["", ""]]`.

So I had used to write the following code reluctantly till Ruby 2.1:

```rb
require "csv"

CSV.parse(%|,""|, converters: lambda{|v| v || ""})
#=> [["", ""]]
```

It is wasteful, but certainly works for my purpose.

However, because of #11126, the above code does not work from Ruby 2.2.
(Converters are not called for nil)

I merely want an option, which makes the CSV parser give empty strings for empty fields.

Namely,

```rb
require "csv"

CSV.parse(%|,""|, string: true) #=> [["", ""]]
```




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

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>