YAML のバックエンドライブラリである Psych で Psych.load
/ Psych.safe_load
/ Psych.parse
/ Psych.parse_stream
/ Psych.load_stream
に対して、キーワード引数を使ったインタフェースに置き換えるよう警告が出るようになった。Psych.safe_load
でキーワード引数を使わなかった場合の警告は以下。
warning: Passing whitelist_classes with the 2nd argument of Psych.safe_load is deprecated. Use keyword argument like Psych.safe_load(yaml, whitelist_classes: ...) instead. warning: Passing whitelist_symbols with the 3rd argument of Psych.safe_load is deprecated. Use keyword argument like Psych.safe_load(yaml, whitelist_symbols: ...) instead. warning: Passing aliases with the 4th argument of Psych.safe_load is deprecated. Use keyword argument like Psych.safe_load(yaml, aliases: ...) instead. warning: Passing filename with the 5th argument of Psych.safe_load is deprecated. Use keyword argument like Psych.safe_load(yaml, filename: ...) instead.
探索する際は、Psych.safe_load
よりも YAML.safe_load
といった YAML の方がヒットするケースがあると思うので、Psych の方ででヒットしなかった場合はそちらで見てみると良い。
導入されたコミットは以下で、それぞれの警告についてはそちらを参照のこと。
複数の Ruby バージョンをサポートする必要のある Gem の場合、Ruby 2.6 への ERB.new
のキーワード引数を使ったインタフェース変更のように、条件式で旧インタフェースと分けることになると思う。
RubyGems の適用ケース。
自分が対応した RuboCop への適用ケース。