In Ruby, is there a way to determine the name of a method, akin to how the "class" method returns an object's type?
For example:
def example_method
  puts method_name
end
#=> "example_method"
In Ruby, is there a way to determine the name of a method, akin to how the "class" method returns an object's type?
For example:
def example_method
  puts method_name
end
#=> "example_method"
 
    
    Try this method, from here:
module Kernel
 private
  def current_method_name
    caller[0] =~ /`([^']*)'/ and $1
  end
end
class Foo
 def test_method
   current_method_name   # "test_method"
 end
end
This works in older versions of Ruby (< 1.9). For newer versions, see the other StackOverflow answer here highlighted by Ben.
 
    
    