多くの外部の宝石を使用するThor CLIアプリケーションを構築しました。私はそれを実行すると、私は出力を乱雑にそれらの宝石から警告メッセージが表示されます - どのように私はこれを抑制することができますか?Thor CLIアプリケーションで警告メッセージを表示しない
明確化:私だけ警告メッセージを抑制したいが、それでもエラーやputs
結果を含めて私のアプリのための標準出力を、受け取ります。
たとえば、Sinatraアプリケーションでこれらの同じ宝石を使用すると、私はThorと同じように宝石のコードからすべての警告メッセージが出ることはありません。この場合
(http://willschenk.com/making-a-command-line-utility-with-gems-and-thor/由来)実施例
require 'thor'
require 'safe_yaml'
module Socialinvestigator
class HammerOfTheGods < Thor
desc "hello NAME", "This will greet you"
long_desc <<-HELLO_WORLD
`hello NAME` will print out a message to the person of your choosing.
HELLO_WORLD
option :upcase
def hello(name)
greeting = "Hello, #{name}"
greeting.upcase! if options[:upcase]
puts greeting
end
end
end
、我々はsafe_yaml
宝石を必要としているので、我々は、コマンドを実行するたびに、我々は我々の出力に次の警告を取得します:
/usr/local/lib/ruby/gems/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml.rb:28: 警告:メソッドが再定義。古いsafe_loadを破棄する /usr/local/Cellar/ruby/2.3.0/lib/ruby/2.3.0/psych.rb:290:警告: safe_loadの以前の定義はここにありました /usr/local/lib/ruby/gems/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml.rb:52: 警告:メソッドが再定義されました。古いLOAD_FILE /usr/local/Cellar/ruby/2.3.0/lib/ruby/2.3.0/psych.rb:470を捨てる:警告:LOAD_FILEの 以前の定義は、ここで我々が使用している
ましたいくつかの異なる宝石と私たちの出力を混乱させる警告の全体の配列を得る...
これについて再生するコード例があるといいですか? –
[KISS](https://en.wikipedia.org/wiki/KISS_principle)解決策:警告を修正してください。 – Blacksilver