【发布时间】:2017-11-02 19:56:03
【问题描述】:
在我们当前的 Ruby(ruby 2.4.2p131,由 rbenv 作为 2.4.0-dev 安装)(不是 Rails)项目中,我们使用了许多会产生警告的 gem。我很欣赏由我们自己的代码引起的警告,并希望查看和删除它们,但是对于来自 gem 的警告没有什么可做的。有没有办法只显示我们自己的警告?
我搜索了类似的问题,但它们要么需要 Rails,要么想要禁用所有警告。两者都不符合我们的要求。
我还尝试了警告 gem (https://rubygems.org/gems/warning/versions/0.10.0),但未能对其产生任何更改。
编辑
这是我不想看到的两个警告:aws-sdk-resources-2.9.8/lib/aws-sdk-resources/services/s3/object.rb:61: warning: method redefined; discarding old copy_from
aws-sdk-core-2.9.8/lib/aws-sdk-core/plugins/s3_accelerate.rb:75: warning: assigned but unused variable - ssl
【问题讨论】:
-
我不确定您为什么要这样做。来自 3rd 方库的警告同样有效——你不应该仅仅因为它“不是你的代码”而忽略它们。
-
但是,这是否回答了您的问题stackoverflow.com/a/5591812/1954610 ? (见最后一段。)
-
@TomLord 当第 3 方 gem 没有将 end 与其对应的 if 对齐时,老实说,我不太在意,因为我不必自己处理代码。 gem 本身功能齐全,我使用的是最新版本。关于该答案的最后一段:我怀疑它会有所帮助,因为我没有 environment.rb 或 application.rb。两者似乎都是特定于 Rails 的。我可以尝试围绕 Gemfile 做类似的事情,但我不确定它是否会起作用。
-
嗯...我知道这不是您所要求的相当,但是您是否考虑过用“grep”隐藏那些特定的警告?您可以在
spec_helper.rb中放置一些内容以捕获$stdout并根据需要对其进行过滤。 -
没错,不是我想要的,但它给了我一个方向。我通常会调用 rake 来运行测试,然后查看实时输出。我正在考虑在 rake 任务中捕获 stdout 和 stderr 并在那里过滤...这样我可以保持对 rake 的简单调用(测试设置为默认任务)
标签: ruby rubygems suppress-warnings