我在项目中使用gem dep_selector并且无法弄清楚如何从库的 C 扩展中抑制标准输出。
我想压制的有问题的代码在这里:
https://github.com/RiotGames/knife_cookbook_dependencies/blob/master/lib/kcd/shelf.rb#L26
我试过这个:
real_stdout = $stdout
$stdout = StringIO.new
real_stderr = $stderr
$stderr = StringIO.new
puts "This gets suppressed correctly"
selector.find_solution( ... ) # still prints to the terminal
但是当我运行脚本时我仍然得到 dep_selector 输出。
有任何想法吗?