From: kou@... Date: 2018-03-10T08:04:03+00:00 Subject: [ruby-core:86072] [Ruby trunk Feature#12839][Closed] CSV - Give not nil but empty strings for empty fields 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: