Вы можете попробовать [binding_of_caller][1]
, caller
или, возможно, [set_trace_func][2]
.
Dzone Snippets предлагает надежный способ использования caller
:
def caller_method_name
parse_caller(caller(2).first).last
end
def parse_caller(at)
if /^(.+?):(\d+)(?::in `(.*)')?/ =~ at
file = Regexp.last_match[1]
line = Regexp.last_match[2].to_i
method = Regexp.last_match[3]
[file, line, method]
end
end
Или вы можете сделать caller.inspect
и просто посмотреть на необработанный вывод.
Binding_of_caller немного сложнее и может быть излишним для того, что вы хотите, но проверьте, если caller
не то, что вам нужно. То же самое с set_trace_func
.