Мне нужно взять название лексически заключенного в Ruby 1.8 метода;например,
def foo
this_method = __callee__ # => 'foo'
end
Приведенный выше код действителен в Ruby 1.9, но не работает в 1.8, так как __callee__ был введен в 1.9.
Есть предложения для этого в 1.8? Kernel # caller выглядело многообещающе, но, похоже, дает мне стек вызовов, начиная с вызывающего метода, а не самого метода.
Я думаю, я мог бы выбросить исключение, поймать его,и захватить первый элемент в массиве Exception # backtrace , но моя интуиция говорит мне, что это будет медленно.