(这与this问题有关)。
在我没有时间更新代码之前,如何在Ruby中禁止过时警告?示例:以下命令将生成不推荐使用触发器警告(该命令本身是胡说;我只想提供一个语法上正确的最小示例):
ruby -v -e '0 if /a/.../b/'
我已经尝试过
ruby -e '$VERBOSE=nil;0 if /a/.../b/'
,并且在安装 warning gem之后,
ruby -e 'require "warning";; Warning.ignore(/deprecated/) 0 if /a/.../b/'
,但警告仍会打印到stderr。我不想将整个stderr重定向到bit bucket,因为我不想丢失重要消息。
答案 0 :(得分:5)
警告是由解析器在评估代码之前生成的。其中包括您的Warning.ignore
代码,因此在发生警告时该配置尚未就绪。
您可以将该代码移到单独的文件中:
# warn.rb
require 'warning'
Warning.ignore(/deprecated/)
并通过-r
加载:
$ ruby -r./warn.rb -e '0 if /a/.../b/'
答案 1 :(得分:3)
不再使用触发器。
回答实际问题:ruby -W:no-deprecated
答案 2 :(得分:2)
我认为是:
ruby -W0 -e 'code'