namespace :sommelier do
desc 'Apply Sommelier to a CSV with a headers row ["dish", "wine", "score"]' task :from_csv do unless ARGV.length == 2 raise ArgumentError, 'Expecting a file as the first argument' end require 'csv' require 'sommelier' csv = CSV.open(ARGV[1], headers: true) sommelier = Sommelier.new csv.each do |row| sommelier.add_match(row[0], row[1], row[2].to_f) end sommelier.pairings.each do |dish, wine| puts "#{dish} => #{wine}" end end
end