Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

RubyのCSVパーサには適切なクラスに読み替えてくれる便利オプションがある

CSV形式、便利ですよね。
エクセル方眼紙方式のまま処理するより圧倒的に高速ですし。

RubyCSVを扱うときは、標準添付ライブラリーを使えば良いのですが…
なんと、これのパーサにはか適切なデータに読み替えてくれるクラスが標準で搭載されています。

CSV.parse "2014-01-08,18", converters: :date
#=> [[#<Date: 2014-01-08 ((2456666j,0s,0n),+0s,2299161j)>, "18"]]
||

複数の型が混在している場合、配列で渡してあげればよろしくやってくれます。
>|ruby|
CSV.parse "2014-01-08,18", converters: [:date, :numeric]
=> [[#<Date: 2014-01-08 ((2456666j,0s,0n),+0s,2299161j)>, 18]]
CSV.parse "2014-01-08,18", converters: :all
#=> [["2014-01-08", 18]]