Finding the Caller in Ruby
In Ruby, it can be really useful to know, in the flow of execution, the call
stack within a certain method. For that we have Kernel#caller
.
#caller
returns an Array representing the current call stack, where each
element is a String like "file:line in 'name'"
. Here’s an example:
def actually_do_it
caller.join("\n")
end
def do_it
actually_do_it
end
puts do_it
which will output:
ex.rb:8:in `do_it'
ex.rb:11:in `<main>'