Parse CSV-Datei mit Header-Feldern als Attribut für jede Zeile

Ich möchte eine CSV-Datei analysieren, sodass jede Zeile wie ein Objekt behandelt wird, wobei die Kopfzeile die Namen der Attribute im Objekt sind. Ich könnte das hier schreiben, aber ich bin sicher, es ist schon da draußen.

Hier ist meine CSV-Eingabe:

"foo","bar","baz"
1,2,3
"blah",7,"blam"
4,5,6

Der Code würde ungefähr so aussehen:

CSV.open('my_file.csv','r') do |csv_obj|
  puts csv_obj.foo   #prints 1 the 1st time, "blah" 2nd time, etc
  puts csv.bar       #prints 2 the first time, 7 the 2nd time, etc
end

Mit Rubys CSV-Modul kann ich meines Erachtens nur über den Index auf die Felder zugreifen. Ich denke, der obige Code wäre etwas besser lesbar. Irgendwelche Ideen