Давай позволим
def api
@api ||= [['woof', 'meow'], ['devoted', 'aloof'], ['1 life', '9 lives']].cycle
@api.next
end
имитирует ваш API:
api #=> ["woof", "meow"]
api #=> ["devoted", "aloof"]
api #=> ["1 life", "9 lives"]
api #=> ["woof", "meow"]
...
до бесконечности . См. Массив # цикл . Прежде чем мы забудем, сбросим @api
: @api = nil
.
Затем мы можем написать следующее.
require 'csv'
def doit(fname, headers, n)
CSV.open(fname, "w") do |csv|
csv << headers
n.times { csv << api }
end
end
Попробуйте:
doit('test.csv', ['dogs', 'cats'], 2)
puts File.read('test.csv')
dogs,cats
woof,meow
devoted,aloof