Roo 弃用的 roo 方法

Roo deprecated roo method

通过以下代码在 Windows 上使用 roo gem:

require 'roo'
require 'roo-xls'

workbook = Roo::Excel.new 'test.xls'

我收到 STDOUT 消息

[DEPRECATION] extend Roo::Tempdir and use its .make_tempdir instead

此后代码运行良好,我可以做任何我想做的事。但是,我想摆脱这条消息(不创建新的 class 或类似的东西,它只是打开一个文件......对吧?)。我该怎么做?

正确的解决方法是不使用已弃用的方法,而是使用推荐的方法。但是,在这种情况下,不是您在使用已弃用的方法,it's the author of roo-xls:

make_tmpdir do |tmpdir| # …

所以,您唯一能做的就是:

  1. 针对 roo-xls 提交错误报告,最好通过拉取请求解决问题(实际上,前者 was already done for you
  2. 暂时,suppress deprecation warnings until the upstream issue is resolved; Roo uses Kernel#warn,所以你只能关闭所有警告,但这样的事情应该有效:

    original_warning_level = $VERBOSE
    $VERBOSE = nil
    
    workbook = Roo::Excel.new 'test.xls'
    
    $VERBOSE = original_warning_level