В зависимости от того, каковы требования к скорости, Вы могли также использовать Trie. Но нет никакого смысла в реализации одного из тех, если TreeMap достаточно быстр.
На самом деле, это было проще, чем я думал, похоже, это работает отлично:
STDOUT.sync = true # That's all it takes...
IO.popen(command+" 2>&1") do |pipe| # Redirection is performed using operators
pipe.sync = true
while str = pipe.gets
puts "-> "+str # This is synchronous!
end
end
... и да, это работает в Windows!