RubyでCSVを操作するときに空行を読み飛ばすことができるskip_blankオプションについて

こんにちは!kossyです!




さて、今回はRubyCSVを操作するときに指定できるskip_blankオプションについて、ブログに残してみたいと思います。




環境

Ruby 2.6.7
Rails 6.0.3.6
MacOS Catalina



使い方

まずはドキュメントを確認します。
docs.ruby-lang.org

真である場合は、空行を読み飛ばします。

require "csv"

csv = CSV.new("header1,header2\n\nrow1_1,row1_2")
csv.skip_blanks? # => false
csv.read         # => [["header1", "header2"], [], ["row1_1", "row1_2"]]
csv = CSV.new("header1,header2\n\nrow1_1,row1_2", skip_blanks: true)
csv.skip_blanks? # => true
csv.read         # => [["header1", "header2"], ["row1_1", "row1_2"]]

空行を読み飛ばしてくれるとのことなので、例えばCSVの行数が重要になってくる処理ではskip_blankオプションが使えるかと思います。
また、加工があまりされてないCSVが入力されることを想定する場合にも使えるのではないでしょうか。




勉強になりました。