CSV (Comma Separated Values) を扱うライブラリです。
このバージョンの CSV ライブラリは FasterCSV から始まりました。 FasterCSV は Ruby1.8 に標準添付されている CSV ライブラリの置き換えとして開発されました。このライブラリはユーザの関心事を解決するためにデザインされています。主なゴールが三つあります。
明らかに最後のものは主観的です。変更するやむを得ない理由が無い限り、オリジナルのインターフェイスに従うようにしたので、おそらく旧 CSV ライブラリとはあまり大きな違いは無いでしょう。
大きな違いについて言及します。
CSV ライブラリは [RFC4180] から直接とられたかなり厳しい定義を維持します。一ヶ所だけ定義を緩和することでこのライブラリを使いやすくしています。CSV はすべての有効な CSV ファイルをパースします。
不正な CSV データを与えたくない。あるフィールドが不正であることが確定するのはファイルを全て読み込んだ後です。これは多くの時間やメモリを消費します。
Ruby の組込みメソッドはほとんど全ての点でより優れています。運が良ければ不正な CSV データを与えても動きます。例えば、クオートされていないフィールドだけを持つ CSV データは次のように簡単にパースできます。
data.split(",")
CSV | このクラスは CSV ファイルやデータに対する完全なインターフェイスを提供します。 |
CSV::Row | CSV::Row は配列やハッシュのように似ています。 |
CSV::Table | CSV::Table は CSV ドキュメントを表す二次元のデータ構造です。行単位や列単位の操作を行うことが出来ます。また必要であれば CSV に戻すこともできます。 |
CSV::FieldInfo | 行が読み込まれたデータソース内でのフィールドの位置の情報を格納するための構造体です。 |
CSV::MalformedCSVError | 不正な CSV をパースしようとしたときに発生する例外です。 |