Type:
Class
An object representation of a stack frame, initialized by Kernel#caller_locations.
For example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # caller_locations.rb def a(skip) caller_locations(skip) end def b(skip) a(skip) end def c(skip) b(skip) end c( 0 .. 2 ).map do |call| puts call.to_s end |
Running ruby caller_locations.rb
will produce:
1 2 3 | caller_locations.rb: 2 :in `a' caller_locations.rb: 5 :in `b' caller_locations.rb: 8 :in `c' |
Here's another example with a slightly different result:
1 2 3 4 5 6 7 8 9 10 11 | # foo.rb class Foo attr_accessor :locations def initialize(skip) @locations = caller_locations(skip) end end Foo. new ( 0 .. 2 ).locations.map do |call| puts call.to_s end |
Now run ruby foo.rb
and you should see:
1 2 3 | init.rb: 4 :in `initialize' init.rb: 8 :in ` new ' init.rb: 8 :in `<main>' |