I have a list of items and a script which generates two lines of csv for each item. May I add two lines at once to csv generator? I want something like this:
CSV.generate do |csv|
  items.each do |item|
    csv << rows(item)
  end
end
def rows(item)
  return \
    ['value1', 'value2', 'value2'],
    ['value3', 'value4', 'value5']
end
But csv << can't receive two lines at once.
Now my the best code is:
CSV.generate do |csv|
  items.each do |item|
    rows(item).each { |row| csv << row } 
  end
end
Update: Now the best code without adding two line at once looks like:
CSV.generate do |csv|
  items.
    flat_map(&method(:rows)).
    each(&csv.method(:<<))
end