Closed saosamu closed 3 years ago
補足。 どうも x64-mingw32 に絡むトラブルっぽいですので,恐らく narou.rb 側での問題ではないです。 もう少し調べてみます。
ここに書くほどのことでもないですが、以下の内容の Gemfile を用意して bundle exec narou *******
でも動きますね。
私の環境では psych 4.0.0 を消す代わりにこの方法で対処しました。 (psych の問題が解決した後は、Gemfile を削除する方が良いです。)
gem 'narou'
gem 'psych', '~> 3.0'
psych 4 では Psych.load
が Psych.safe_load
相当に変更されたようです。
https://github.com/ruby/psych/pull/487
もし psych 4.0.0 に対応させるとしたら、次の2つが考えられます:
YAML.load
/ YAML.load_file
メソッドに permitted_classes: [Time], aliases: true
キーワード引数を与える
例えば:
YAML.load_file(".narou/database.yaml", permitted_classes: [Time], aliases: true)
safe_load
メソッドであれば、Ruby 2.6 にバンドルされている psych 3.1.0 以降であればキーワード引数に対応しているようです。
もっとも Ruby 2.5 に入っている psych 3.0.2 はキーワード引数に対応していないようです (でも古いので諦めても良いように思います)。
YAML.unsafe_load
メソッドを使う
この unsafe_load
メソッドは、psych 3.3.2 から追加されています。
ag "YAML.load" -l | xargs sed -i '' -e "s/YAML.load/YAML.unsafe_load/g"
@saosamu @topstone @dearblue ありがとうございます! #387 で修正しました 後ほどバージョン更新しておきます
既出かも知れませんが,とりあえず Issues 検索「psych」で引っかからなかったので報告しておきます。
gem update psych
をすると narou がエラー停止します。 psych 4.0.0 を 3.0.0 に戻すとエラーが出なくなります。ご参考まで。
詳細
gem update -system
とgem update
をかけたら narou がエラーで動かなくなりました。 Ruby 2.7.3 から Ruby 3.0.1 に更新し,gem udpate -system
までは稼働,gem update
を掛けるとエラー停止。吐かれたエラー
psych-4.0.0 を uninstal するとエラーが出なくなります。
psych-4.0.0 を uninstall した状態で,バージョンは以下のとおりです。