有没有办法知道当前在 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__
是 aSymbol
而不是 aString
这至少需要 Ruby 1.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