require 'csv' class Car attr_accessor :year, :make, :model, :length def initialize(year, make, model, length) @year = year @make = make @model = model @length = Float(length) end def to_s "The #{@make} #{@model} was built in #{@year} and measured #{@length}." end end class CsvReader attr_accessor :cars def initialize @cars_in_file = [] end def read_in_csv_data(csv_file_name) CSV.foreach(csv_file_name, headers: true) do |row| @cars_in_file << Car.new(row["Year"], row["Make"], row["Model"], row["Length"]) end end end reader = CsvReader.new reader.read_in_csv_data("/home/stapiagutierrez/Desktop/Pickaxe/cars.csv") puts reader.cars[0]
The error is fired in the CsvReader class, in the CSV.foreach area. Here is the error:
Quote
CsvReader.rb:26: syntax error, unexpected ':', expecting ')'
CSV.foreach(csv_file_name, headers: true) do |row|
^
CsvReader.rb:30: syntax error, unexpected kEND, expecting $end
CSV.foreach(csv_file_name, headers: true) do |row|
^
CsvReader.rb:30: syntax error, unexpected kEND, expecting $end
Any suggestions on how to fix this? Thanks!