Class: DEBUGGER__::CallTracer
Relationships & Source Files | |
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
self,
Tracer
|
|
Instance Chain:
|
|
Inherits: |
DEBUGGER__::Tracer
|
Defined in: | lib/debug/tracer.rb |
Class Method Summary
Instance Attribute Summary
Instance Method Summary
Tracer
- Inherited
#colorize, #description, #disable, #enable, #header, #minfo, #out, #skip?, #skip_with_pattern?, #to_s |
Color
- Included
#color_pp | See additional method definition at line 50. |
#colored_inspect, | |
#colorize | See additional method definition at line 36. |
#colorize_blue, | |
#colorize_code | See additional method definition at line 79. |
#colorize_cyan, #colorize_dim, #colorize_magenta, | |
#irb_colorize | See additional method definition at line 27. |
#with_inspection_error_guard |
SkipPathHelper
- Included
Constructor Details
This class inherits a constructor from DEBUGGER__::Tracer
Instance Method Details
#setup
[ GitHub ]# File 'lib/debug/tracer.rb', line 116
def setup @tracer = TracePoint.new(:a_call, :a_return){|tp| next if skip?(tp) depth = caller.size call_identifier_str = if tp.defined_class minfo(tp) else "block" end call_identifier_str = colorize_blue(call_identifier_str) case tp.event when :call, :c_call, :b_call depth += 1 if tp.event == :c_call sp = ' ' * depth out tp, ">#{sp}#{call_identifier_str}", depth when :return, :c_return, :b_return depth += 1 if tp.event == :c_return sp = ' ' * depth return_str = colorize_magenta(DEBUGGER__.safe_inspect(tp.return_value, short: true)) out tp, "<#{sp}#{call_identifier_str} #=> #{return_str}", depth end } end
#skip_with_pattern?(tp) ⇒ Boolean
# File 'lib/debug/tracer.rb', line 145
def skip_with_pattern?(tp) super && !tp.method_id&.match?(@pattern) end