現在Rubyで実行されているメソッドの名前を知る方法はありますか?
編集
たとえばself
、現在のクラスを取得するために使用できます。実行中の現在のメソッドを取得する方法はありますか?次のことができる「魔法の方法」はありますか?
def method1
p "this method's name is " + magicmethod # => this method's name is method1
end
現在Rubyで実行されているメソッドの名前を知る方法はありますか?
編集
たとえばself
、現在のクラスを取得するために使用できます。実行中の現在のメソッドを取得する方法はありますか?次のことができる「魔法の方法」はありますか?
def method1
p "this method's name is " + magicmethod # => this method's name is method1
end
あります__method__
:
class Test
def testing
__method__
end
end
__method__
はであり、Symbol
ではないことに注意してくださいString
これには、少なくともRuby1.8.7が必要です。
以下の方法: :)
p RUBY_VERSION
module Kernel
private
def method_name
caller[0] =~ /`([^']*)'/ and $1
end
end
class Foo
def test_method
method_name
end
end
puts Foo.new.test_method
出力:
"1.9.3"
test_method