Analisar arquivo CSV com campos de cabeçalho como atributos para cada linha
Gostaria de analisar um arquivo CSV para que cada linha seja tratada como um objeto, com a linha de cabeçalho sendo os nomes dos atributos no objeto. Eu poderia escrever isso, mas tenho certeza que já está lá fora.
Aqui está minha entrada CSV:
"foo","bar","baz"
1,2,3
"blah",7,"blam"
4,5,6
O código ficaria assim:
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
Com o módulo CSV do Ruby, acredito que só posso acessar os campos por índice. Eu acho que o código acima seria um pouco mais legível. Alguma ideia?