Я создал приложение Thor CLI, в котором используется ряд внешних драгоценных камней. Когда я запускаю его, я получаю предупреждающие сообщения от этих драгоценных камней, загромождающих мой вывод - как я могу подавить это?Подавление предупреждающих сообщений в приложении Thor CLI
Разъяснение: Я хочу, чтобы подавить предупреждение только сообщения, но по-прежнему получать стандартный выход для моего приложения, в том числе ошибки и puts
результатов.
Например, когда я использую эти же драгоценные камни в своем приложении Sinatra, я не получаю все предупреждающие сообщения, исходящие из кода драгоценного камня, как у Тора.
Пример (производный от 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:90: warning: Предыдущее определение 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