class Thread::Backtrace::Location
クラスの継承リスト: Thread::Backtrace::Location < Object < Kernel < BasicObject
要約
Ruby のフレームを表すクラスです。
Kernel.#caller_locations から生成されます。
例1:
# 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
例1の実行結果:
caller_locations.rb:2:in `a' caller_locations.rb:5:in `b' caller_locations.rb:8:in `c'
例2:
# 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
例2の実行結果:
init.rb:4:in `initialize' init.rb:8:in `new' init.rb:8:in `<main>'
参考
- Ruby VM アドベントカレンダー #4 vm_backtrace.c: http://www.atdot.net/~ko1/diary/201212.html#d4
目次
- インスタンスメソッド
- absolute_path base_label inspect label lineno path to_s
インスタンスメソッド
absolute_path -> String-
self が表すフレームの絶対パスを返します。
[SEE_ALSO] Thread::Backtrace::Location#path
base_label -> String-
self が表すフレームの基本ラベルを返します。通常、 Thread::Backtrace::Location#label から修飾を取り除いたもので構成 されます。
[SEE_ALSO] Thread::Backtrace::Location#label
inspect -> String-
Thread::Backtrace::Location#to_s の結果を人間が読みやすいような文 字列に変換したオブジェクトを返します。
label -> String-
self が表すフレームのラベルを返します。通常、メソッド名、クラス名、モ ジュール名などで構成されます。
例: Thread::Backtrace::Location の例1を用いた例
loc = c(0..1).first loc.label # => "a"
[SEE_ALSO] Thread::Backtrace::Location#base_label
lineno -> Integer-
self が表すフレームの行番号を返します。
例: Thread::Backtrace::Location の例1を用いた例
loc = c(0..1).first loc.lineno # => 2
path -> String-
self が表すフレームのファイル名を返します。
例: Thread::Backtrace::Location の例1を用いた例
loc = c(0..1).first loc.path # => "caller_locations.rb"
[SEE_ALSO] Thread::Backtrace::Location#absolute_path
to_s -> String-
self が表すフレームを Kernel.#caller と同じ表現にした文字列を返し ます。