Запись Ruby в файл в памяти (на самом деле не запись в него)
Итак, у меня есть эта программа, которая работает с передачей строки (эта строка является путем к файлу, который она должна прочитать)
Теперь у меня есть метод, который должен открыть этот файл. измените текст с помощью Gsub и затем снова выведите этот файл (исходный файл не может быть отредактирован), но мне нужно в конечном итоге вывести этот измененный файл
это метод, который я использую, чтобы изменить мой файл (упрощенно)
def self.changeFile(myfile)
myfile = @path
doc = File.open(myfile)
text = doc.read
text.gsub!("change" , "changed")
return text
проблема в том, что я получаю весь файл в виде возвращаемой строки. Мои другие методы работают с вводом "строки" пути
Итак, мой вопрос: могу ли я в любом случае записать свой текст в файл, который я изменил в памяти, так что без фактического изменения исходного файла?
Я думал об использовании "Tempfile" или "StringIO", но я не знаю, правильно ли это делать
Вся помощь приветствуется
1 ответ
Вы можете использовать храм для этого:
def self.changeFile(myfile)
myfile = @path
tempfile = Tempfile.new("changed")
tempfile << File.open(myfile).read.gsub("change" , "changed")
tempfile.close
tempfile.path
end