この質問では、簡単な警告を作成するために何をすべきかを説明します(ただし、トレースをログに記録しないため、あまり役に立ちません)。これを作成する方法はたくさんありますが、ガイドは見つかりませんでした。
ActiveSupport :: Deprecationを使用して、old_methodを非推奨としてマークし、他のnew_methodを呼び出すにはどうすればよいですか。
この質問では、簡単な警告を作成するために何をすべきかを説明します(ただし、トレースをログに記録しないため、あまり役に立ちません)。これを作成する方法はたくさんありますが、ガイドは見つかりませんでした。
ActiveSupport :: Deprecationを使用して、old_methodを非推奨としてマークし、他のnew_methodを呼び出すにはどうすればよいですか。
ローマンが言うように、それはActiveSupport :: Deprecation.deprecate_methods(target_module、* deprecated_methods)で行うことができます
どこ:
target_module
メソッドが属するモジュールまたはクラスです。deprecated_methods
シンボルの配列です。最後のメソッドでは、非推奨メッセージをカスタマイズするためのオプションを指定できます。
ActiveSupport::Deprecation.deprecate_methods(target_module, :old_method, \
:other_old_method => :new_method, :another_old_method => "custom message")
この例は、old_methodが呼び出されたときのデフォルトのメッセージを示し、 2番目のメッセージで「代わりにnew_methodを使用する」というコメントを付け、:another_old_methodを使用したカスタムメッセージを示します。
注:非推奨のメソッドは(前に)定義する必要があり、実行されます。:new_methodは自動的には呼び出されません。(もっと多くのオプションがありますが、私はそれらを知りません)
lib/active_support/deprecation/method_wrappers.rb
例を調べてみてください。