4

Ruby on Rails APIドキュメントによると、メソッド#deprecateを使用してメソッドを非推奨にすることができます。これはすべて問題ありません。

私の質問は; 静的メソッドを非推奨にすることは可能ですか?もしそうなら、どのように?

通常のメソッドの場合、次のようなことを行うことができます。

deprecate :my_method
def my_method
  # ...
end

ボットこれは私に頭痛を与えます(そしてそれは機能しません):

deprecate :"self.my_method"
def self.my_method
  # ...
end

追伸:私は次のような方法から警告を発することができることを知っています:

def self.my_method
  ActiveSupport::Deprecation.warn "the warning..."
  # ...
end
4

1 に答える 1

3

メタクラスで deprecate を呼び出す必要があります。

class Test1
  def self.hello
    puts "Test1"
  end
  singleton_class.deprecate :hello
  # or
  class << self ; deprecate :hello ; end
end
于 2013-02-28T11:17:45.493 に答える