Вы пишете новый файл, применяя изменения в нужной строке, а затем переименовываете результат обратно в исходное имя файла.Следующий метод скопирует файл и выдаст объект выходного файла в блок на правильной строке, чтобы этот блок мог вывести ваши новые строки.
def insert_lines_following_line file, line_no
tmp_fn = "#{file}.tmp"
File.open( tmp_fn, 'w' ) do |outf|
line_ct = 0
IO.foreach(file) do |line|
outf.print line
yield(outf) if line_no == (line_ct += 1)
end
end
File.rename tmp_fn, file
end
insert_lines_following_line( "#{curDir}/Backup_Times.csv", 1 ) do |outf|
# output new csv lines in this block
outf.puts ['foo','bar','baz',1,2,3].join(",") # or however you build your csv line
end