Roo不赞成使用roo方法

Leś*_*ajs 3 ruby xls roo-gem

在Windows上使用roo gem,代码如下:

require 'roo'
require 'roo-xls'

workbook = Roo::Excel.new 'test.xls'
Run Code Online (Sandbox Code Playgroud)

我收到了STDOUT的消息

[DEPRECATION] extend Roo::Tempdir and use its .make_tempdir instead
Run Code Online (Sandbox Code Playgroud)

代码工作正常后,我能够做我想要的每一件事.但是,我想摆脱这个消息(没有创建一个新的类或类似的东西,它只是打开一个文件......对吗?).我怎么做?

Jör*_*tag 5

正确的解决方法是不使用已弃用的方法,而是使用推荐的方法.但是,在这种情况下,不是您使用已弃用的方法,它的作者是roo-xls:

make_tmpdir do |tmpdir| # …
Run Code Online (Sandbox Code Playgroud)

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

  1. 提交一份错误报告roo-xls,最好是一个修复问题的拉取请求(实际上,前者已经为你完成了)
  2. 暂时禁止弃用警告,直到上游问题得到解决; Roo使用Kernel#warn,所以你可能只会关闭所有警告,但这样的事情应该有效:

    original_warning_level = $VERBOSE
    $VERBOSE = nil
    
    workbook = Roo::Excel.new 'test.xls'
    
    $VERBOSE = original_warning_level
    
    Run Code Online (Sandbox Code Playgroud)