Вы можете сделать это, вставив трубу в readline.Вот пример использования цикла while
из документации ri readline, который просто отправляет command 1
, command2
, command 3
на readline.
require 'readline'
rd, wr = IO.pipe
(1..3).each do |i|
wr.puts "command #{i}"
end
wr.close
Readline.input = rd
while buf = Readline.readline('', true)
p Readline::HISTORY.to_a
print("-> ", buf, "\n")
end
Вывод:
["command 1"]
-> command 1
["command 1", "command 2"]
-> command 2
["command 1", "command 2", "command 3"]
-> command 3