I have opened my existing file in r+ mode.
open(\"#{RAILS_ROOT}/locale/app.pot\", \'r+\') do |f|
end
I want to insert some other rows at specific lin
This has worked for me in the past:
def write_at(fname, at_line, sdat)
open(fname, 'r+') do |f|
while (at_line-=1) > 0 # read up to the line you want to write after
f.readline
end
pos = f.pos # save your position in the file
rest = f.read # save the rest of the file
f.seek pos # go back to the old position
f.write sdat # write new data
f.write rest # write rest of file
end
end
This may not be the best Ruby way, but in general when I have had to do this in the past, I would open an output file with a globally unique name and go line by line reading and writing from one to the other, keeping line count along the way. (it isn't the greatest thing in the world to maintain, but it's very simple to implement)