Программирование на языке Ruby.

11.3.9. Просмотр стека вызовов.

And you may ask yourself: Well, how did I get here?[13] Talking Heads, «Once in a Lifetime»

Иногда необходимо знать, кто вызвал метод. Эта информация полезна, если, например, произошло неисправимое исключение. Метод caller, определенный в модуле Kernel, дает ответ на этот вопрос. Он возвращает массив строк, в котором первый элемент соответствует вызвавшему методу, следующий — методу, вызвавшему этот метод, и т.д.

Def func1.

 puts caller[0].

End.

Def func2.

 func1.

End.

Func2 # Печатается: somefile.rb:6:in 'func2'.

Строка имеет формат «файл;строка» или «файл;строка в методе».