Ruby の CSV ライブラリはとても便利なんだけど、ひとつだけ問題があって、CSV をパースしたときに nil を返すことがある。 つぎのような CSV をパースすると2番目のカラムが nil になる。4番目のカラムは空文字になるのに! hoge,,fuga,"",piyo require 'csv' CSV.parse_line('hoge,,fuga,"",piyo') #=> ["hoge", nil, "fuga", "", "piyo"] なので CSV のパース結果は全部文字列だと思って使ってるとエラーになってびっくりする。 CSV.parse_line('hoge,,fuga').map(&:upcase) #=> undefined method 'upcase' for nil (NoMethodError) CSV を生成するときも nil と空文字で変わる: pu
![Ruby の CSV が nil を返さないようにする - tmtms のメモ](https://cdn-ak-scissors.b.st-hatena.com/image/square/35841b9a3d52e626634e94a0f99d44d01743e211/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Ft%2Ftmtms%2F20240714%2F20240714170348.jpg)