如何摆脱红宝石的警告:已经初始化常数

cfp*_*ete 4 ruby xml-rpc

我正在尝试动态重新定义gem的常量,所以我不需要修改gem本身.

require 'xmlrpc/client'

XMLRPC::Config.const_set("ENABLE_NIL_PARSER", true)

warning: already initialized constant ENABLE_NIL_PARSER
Run Code Online (Sandbox Code Playgroud)

是否有可能摆脱警告?

pgu*_*rio 6

简单的方法:

v, $VERBOSE = $VERBOSE, nil
# code goes here
$VERBOSE = v
Run Code Online (Sandbox Code Playgroud)


Pie*_*llo 5

您甚至可以将它包装在一个块中,就像这样

def ignoring_warnings(&block)
  begin
    v, $VERBOSE = $VERBOSE, nil
    block.call if block
  ensure
    $VERBOSE = v
  end
end
Run Code Online (Sandbox Code Playgroud)