Рубиновый двунаправленный строковый буфер - PullRequest
0 голосов
/ 21 мая 2018

Есть ли у ruby ​​собственный класс двунаправленного строкового буфера?Я хотел бы иметь возможность сделать что-то вроде этого:

buf = Buffer.new

Thread.new do
  while true
    # do some work
    buf << result
  end

  buf.close
end

Thread.new do
  until buf.eof?
    result = buf.readline
    # do some work
  end
end

StringIO поддерживает либо чтение или запись, но не оба.Если я инициализирую новый и напишу в него, затем попытаюсь прочитать с него, я ничего не получу.Есть ли способ получить простой старый поток связи, подобный этому, который не требует использования mkfifo или чего-то еще?

1 Ответ

0 голосов
/ 21 мая 2018

StringIO поддерживает либо чтение, либо запись, но не оба.

Вы можете читать из объекта StringIO, в который только что написали, просто вызовите rewind для вашего объекта.

Я думаю, что вы присматриваете за IO :: pipe .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...