前置き
RailsでExcelファイルを読み込むのにRooを使っている人がどれくらいいるか分かりませんので、需要あるのか?微妙ですが
bundle updateの恐怖
ある日不用意にbundle updateしてしまい、Rooがv1.13からv2.0に上がっていることに気づかず、Excelファイルのインポート機能が動作していないとクレームが来ることに。。。
何が起こってる?
Roo::Excelx.new で「ArgumentError (wrong number of arguments (3 for 1..2))」
あれ?メソッドの仕様が変わっている!!
とりあえずヴァージョン1.13に戻して調査することに
仕様変更
def initialize(filename, options = {}, deprecated_file_warning = :error)
だったので
Roo::Excelx.new(@file.path, nil, :ignore)
と呼んでいたのですが
def initialize(filename, options = {})
となっています。
deprecated_file_warningどこいった?と思いましたがinitialize内で
file_warning = options.fetch(:file_warning, :error)
とあるのでoptionsに入れてしまえばいいでしょう
Roo::Excelx.new(@file.path, :file_warning => :ignore)
旧フォーマット(xls)も使いたい
Roo::Excelは別ライブラリに移行してしまいました
roo-xls のGEMを追加しましょう