I stopped using CSV gems after they added CSV functionality to Ruby
(in some old version, perhaps prior to 2.4.0).
I'll keep those gems in mind though since they seem to be handling
some advanced scenarios.
The built-in CSV module / gem got some good updates lately. I think
the broken whitespace issue
for quotes values is now fixed and the built-in CSV module now has a
proper parser and no longer a string.split hack claiming for sure to
be super-fast but kind-of broken.
Anyways, the main issue of the built-in CSV module is the old-ish
overengineered "OOP" interface.
If you read a datasets - you usually want to get back a "plain
vanilla" ruby hash with all strings and not some "OOP" hash-like
wrappers or such.
Not really blaming anyone - I understand it is hard (or impossible)
to upgrade the interface without breaking compatibility.