Ruby观看自己进程的stdout

时间:2017-10-02 11:18:26

标签: ruby logging vagrant

注意:我是Ruby的新手,因此下面的术语和/或语法可能有误。

有没有办法在不阻塞其余代码的情况下观看STDOUT我的ruby进程?类似的东西:

$stdout.read_lines {|line| // This block is executed on each line logged via `puts`
    do_something() if line == 'some interesting string'
}

puts 'Hello world'
puts 'some interesting string' // This would cause the `do_something` line to be executed

我已经看到了一些示例,其中可以以类似的方式创建和监视新进程,但是没有查看当前进程的stdout的情况。

非常感谢。

编辑:

具体来说,我希望在我的Vagrant设置中执行此行时执行一些代码:https://github.com/cogitatio/vagrant-hostsupdater/blob/master/lib/vagrant-hostsupdater/HostsUpdater.rb#L103

看起来消息已记录到@ui,我相信是此模块的实例https://github.com/hashicorp/vagrant/blob/master/lib/vagrant/ui.rb

0 个答案:

没有答案