Ruby Преобразование строки в файл

Можно ли преобразовать строку в файл без записи на диск?

Я хотел бы повсеместно работать с строкой файла:

input = "123"
if (ARGV.length == 1)
   input = File.open(ARGV[0])

   #do stuff with input
end

Можно ли создать файл из строки (без записи на диск)? В противном случае я не смог бы выполнить input.readline(), когда это строка.

Ответ 1

Вы можете использовать StringIO (1.8.7, 1.9.3), чтобы создать IO (1.8.7, 1.9.3) из объекта (то есть объект, который действует как файл):

file = StringIO.new("123")
line = file.readline
file.close

Ответ 2

StringIO может использоваться для создания файлового интерфейса для строк.

Ответ 3

StringIO хорош, вы также можете сделать это с помощью блока:

StringIO.open(string) do |file|
  # do stuff here
end

Мне нравится эта над над file.close