Description

This version of the CSV library began
its life as FasterCSV. FasterCSV was intended as a replacement to
Ruby's then standard CSV library.
It was designed to address concerns users of that library had and it had
three primary goals:

Obviously, the last one is subjective. I did try to defer to the original
interface whenever I didn't have a compelling reason to change it
though, so hopefully this won't be too radically different.

We must have met our goals because FasterCSV was renamed to CSV and replaced the original library as
of Ruby 1.9. If you are migrating code from 1.8 or earlier, you may have to
change your code to comply with the new interface.

Documentation

CSV maintains a pretty strict
definition of CSV taken directly from
the RFC. I relax the
rules in only one place and that is to make using this library easier. CSV will parse all valid CSV.

What you don't want to do is feed CSV invalid data. Because of the way the
CSV format works, it's common for
a parser to need to read until the end of the file to be sure a field is
invalid. This eats a lot of time and memory.

Luckily, when working with invalid CSV, Ruby's built-in methods will
almost always be superior in every way. For example, parsing non-quoted
fields is as easy as: