3

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

その後、コードは正常に機能し、必要なことはすべて実行できます。ただし、このメッセージを取り除きたいです(新しいクラスなどを作成せずに、ファイルを開くだけです...そうですか?)。それ、どうやったら出来るの?

4

1 に答える 1

5

正しい修正は、非推奨の方法を使用せず、代わりに推奨される方法を使用することです。ただし、この場合、非推奨の方法を使用しているのはあなたではなく、次の作成者ですroo-xls

make_tmpdir do |tmpdir| # …

したがって、できることは次のとおりです。

  1. に対してバグ レポートを提出しますroo-xls。できれば問題を修正するプル リクエストを使用してください (実際、前者は既にあなたのために行われています) 。
  2. 当分の間、アップストリームの問題が解決されるまで非推奨の警告を抑制します。Roo は を使用するKernel#warnため、残念ながらすべての警告をオフにすることしかできませんが、次のような方法で機能するはずです。

    original_warning_level = $VERBOSE
    $VERBOSE = nil
    
    workbook = Roo::Excel.new 'test.xls'
    
    $VERBOSE = original_warning_level
    
于 2016-09-29T08:56:27.710 に答える