From: hsbt@... Date: 2018-02-26T11:18:02+00:00 Subject: [ruby-core:85819] [Ruby trunk Feature#12839][Assigned] CSV - Give not nil but empty strings for empty fields Issue #12839 has been updated by hsbt (Hiroshi SHIBATA). Status changed from Open to Assigned Assignee changed from JEG2 (James Gray) to kou (Kouhei Sutou) ---------------------------------------- Feature #12839: CSV - Give not nil but empty strings for empty fields https://bugs.ruby-lang.org/issues/12839#change-70676 * Author: 5.5 (5 5) * Status: Assigned * 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: