ruby - 如何抑制弃用警告?
问题描述
(这与这个问题有关)。
在找到时间更新代码之前,如何抑制 Ruby 中的弃用警告?示例:以下命令将生成触发器已弃用警告(命令本身是无意义的;我只是想提供一个最小的、语法正确的示例):
ruby -v -e '0 if /a/.../b/'
我已经试过了
ruby -e '$VERBOSE=nil;0 if /a/.../b/'
并且,在安装了警告gem 之后,
ruby -e 'require "warning";; Warning.ignore(/deprecated/) 0 if /a/.../b/'
但警告仍会打印到标准错误。我不想将整个 stderr 重定向到位桶,因为我不想丢失重要消息。
解决方案
在评估代码之前,解析器会生成警告。这包括您的Warning.ignore
代码,因此当警告发生时配置尚未准备好。
您可以将该代码移动到单独的文件中:
# warn.rb
require 'warning'
Warning.ignore(/deprecated/)
并通过以下方式加载-r
:
$ ruby -r./warn.rb -e '0 if /a/.../b/'
推荐阅读
- excel - 导出为 PDF 宏缺少形状
- python - Pandas 减慢元组的 multiIndex 分配
- django - 运行 Django 服务器的 docker 命令是什么?
- mongodb - 如何将对象值移动到 MongoDB 中的数组?
- r - 满足条件的矩阵索引
- django - 通过 URL 使用多个选项预填充 ManyToManyField?
- sql - 窗口函数 - Dense_Rank 和 Row_Number 差异
- javascript - 如何使用另一个函数创建一个函数以在javascript中输出与字符一样多的行?例如:4 行,每行 4 个“#”。基本上是一个正方形
- python - 从列表中删除多个元素,直到遇到值
- java - 如何在 Java/Selenium/WebDriver 中调用 onChange 事件 JS 函数?