CSV.filter(input, output, headers: true) does not write the header row to output!
I'm having issues with the behaviour of filter and wanted to see if I'm missing something in docs. Certainly the observed behaviour does not seem to match [the recipe](https://ruby.github.io/csv/doc/csv/recipes/filtering_rdoc.html#label-Recipe-3A+Filter+String+to+String+with+Headers), where the headers are being written to the output!
Goal: filter a CSV file using headers AND have the headers written to the output!
ruby 3.3.1 (2024-04-23 revision c56cd86388) [x86_64-linux]
CSV::VERSION is "3.3.0"
```ruby
irb(main):008> require 'csv'
=> true
irb(main):009> input = "Date and Time,Some other headers\n2024-06-01T13:59:59.9500000+10,othervalue"
=> "Date and Time,Some other headers\n2024-06-01T13:59:59.9500000+10,othervalue"
irb(main):010> output = ''
=> ""
irb(main):011> CSV.filter(input, output, headers: true) { |row| row['Date and Time'] = "#{row['Date and Time']}+HUH"}
=> nil
irb(main):012> output
=> "2024-06-01T13:59:59.9500000+10+HUH,othervalue\n"
```
So why is the header row not being written to the output?
关闭于 2024-06-18 5 条评论