Suprimindo avisos no Ruby


Leia em menos de um minuto

Se você seguiu o post Localização de mensagens de erro e datas no Rails, deve ter percebido que toda vez que você inicia o WEBRick, mensagens avisando que você está sobrescrevendo constantes aparecem. Isso acontece por que o Ruby permite que você redefina constantes, diferente de outras linguagens, mas avisa antes.

=> Booting WEBrick...
./script/../config/../lib/overrides.rb:5: warning: already initialized constant MONTHNAMES
./script/../config/../lib/overrides.rb:6: warning: already initialized constant DAYNAMES
./script/../config/../lib/overrides.rb:7: warning: already initialized constant ABBR_MONTHNAMES
./script/../config/../lib/overrides.rb:8: warning: already initialized constant ABBR_DAYNAMES
=> Rails application started on http://0.0.0.0:3000

Você pode desabilitar essas mensagens somente no trecho onde você redefine suas contantes com a variável global $VERBOSE.

old_verbose = $VERBOSE
$VERBOSE = nil

Date::MONTHNAMES = [nil] + %w(Janeiro Fevereiro Março Abril Maio Junho Julho Agosto Setembro Outubro Novembro Dezembro)
Date::DAYNAMES = %w(Domingo Segunda-Feira Terça-Feira Quarta-Feira Quinta-Feira Sexta-Feira Sábado)
Date::ABBR_MONTHNAMES = [nil] + %w(Jan Fev Mar Abr Mai Jun Jul Aug Set Out Nov Dez)
Date::ABBR_DAYNAMES = %w(Dom Seg Ter Qua Qui Sex Sáb)

$VERBOSE = old_verbose