$0 is the variable for the top level Ruby program, but is there one for the current method?
$0 is the variable for the top level Ruby program, but is there one for the current method?
Even better than my first answer you can use __method__:
class Foo
def test_method
__method__
end
end
This returns a symbol – for example, :test_method. To return the method name as a string, call __method__.to_s instead.
Note: This requires Ruby 1.8.7.
From http://snippets.dzone.com/posts/show/2785:
module Kernel
private
def this_method_name
caller[0] =~ /`([^']*)'/ and $1
end
end
class Foo
def test_method
this_method_name
end
end
puts Foo.new.test_method # => test_method