概要
Kernel#caller(start = 1)
詳細
メソッドのコールスタックを配列形式で返却する。
引数のstartに指定した要素数分取得する。
スタックの数を超えたstartを指定した場合はnilを返却する。
サンプルコード
# encoding: utf-8 require 'pp' class Hoge def hoge(index) hige(index) end def hige(index) hage(index) end def hage(index) pp caller(index) end end Hoge.new.hoge(0) Hoge.new.hoge(1) Hoge.new.hoge(3) Hoge.new.hoge(4) Hoge.new.hoge(5)
出力
["some_path/kernel_caller.rb:14:in `hage'", "some_path/kernel_caller.rb:10:in `hige'", "some_path/kernel_caller.rb:6:in `hoge'", "some_path/kernel_caller.rb:18:in `<main>'"] ["some_path/kernel_caller.rb:10:in `hige'", "some_path/kernel_caller.rb:6:in `hoge'", "some_path/kernel_caller.rb:19:in `<main>'"] ["some_path/kernel_caller.rb:20:in `<main>'"] [] nil