Fight CSV!はCSVの各行をオブジェクト化することでシステムからの扱いを容易にするライブラリ。

Fight CSV!はRuby製のオープンソース・ソフトウェア。システム開発を行う際にCSVを扱うケースは多々ある。データをまとめて放り込んだり、一括更新したりする時に使われるケースが多い。しかしシステムで扱う時にはとても面倒なフォーマットだ。


利用中

CSVを扱いやすくするライブラリは多いが、項目をばらす程度で後は配列のキーごとに処理を書いていかなければいかない。これはバグをはらみやすいし、値のチェックも大変だ。そこで使ってみたいのがFight CSV!だ。

Fight CSV!はクラスを定義して、CSVのヘッダーに定義されている項目ごとに処理分けを書くことで、CSVの各行をオブジェクトとして扱えるようにするライブラリだ。各カラムごとに処理を書けるので、バリデーションしたり、文字列を日付に変更するようなコンバート処理も書ける。


コンバータが便利!

さらにCSVのヘッダーがない場合も、数字ごとにヘッダーとして展開することで同様に分かりやすい処理が書けるようにできる。ヘッダーさえ定義されていれば、カラムの順番を変更しても問題ない。CSVをシステムに取り込む処理があるならば必ずチェックしておきたいライブラリだ。

MOONGIFTはこう見る

CSVは昔のCGI時代から便利に使われてきたが、最近ではDBを使うことが多くなったので利用機会は減りつつある。とは言え、バッチでのデータ処理ではまだまだ現役だ。ビジネス向けのシステムでは必ずこのCSV取り込み処理が望まれるはずだ。

一つ、二つであればごりごりとコードを書いても良いだろうが、ユーザが作るファイルなので間違いも起きやすい。その度にコードを変更しているとバグも混入しやすい。Fight CSV!を使っていれば可読性の高い状態でコードが書けるのですっきりとまとまるはずだ。煩雑化しやすい箇所だからこそ、専用のライブラリを活用していきたい。

fight_csv | RubyGems.org | your community gem host

railslove/fight_csv - GitHub