From: hsbt@... Date: 2017-05-10T11:51:55+00:00 Subject: [ruby-core:81094] [Ruby trunk Bug#9988] CSV does not write headers when :write_headers is true and no rows are added Issue #9988 has been updated by hsbt (Hiroshi SHIBATA). Assignee changed from JEG2 (James Gray) to hsbt (Hiroshi SHIBATA) ---------------------------------------- Bug #9988: CSV does not write headers when :write_headers is true and no rows are added https://bugs.ruby-lang.org/issues/9988#change-64743 * Author: jeremyevans0 (Jeremy Evans) * Status: Assigned * Priority: Normal * Assignee: hsbt (Hiroshi SHIBATA) * Target version: * ruby -v: ruby -v: ruby 2.1.2p95 (2014-05-08 revision 45877) [i386-openbsd] * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN ---------------------------------------- When the CSV :write_headers option is used, headers are only added if at least one row is added: ~~~ $ ruby -r csv -e "p CSV.generate(:headers=>%w'a b c', :write_headers=>true){|csv|}" "" $ ruby -r csv -e "p CSV.generate(:headers=>%w'a b c', :write_headers=>true){|csv| csv << []}" "a,b,c\n\n" ~~~ This seems like a bug to me. It should write the headers even if there are no rows. The attached patch does that: ~~~ $ ruby -I lib -r csv -e "p CSV.generate(:headers=>%w'a b c', :write_headers=>true){|csv|}" "a,b,c\n" ~~~ The attached patch should probably be refactored to avoid the duplication, but I think that is best left to the csv maintainer. ---Files-------------------------------- csv-write-headers-empty-fix.diff (1.47 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: