Class: Object

Inherits:
BasicObject
Defined in:
lib/tracing.rb

Overview

Make the trace method globally available:

Instance Method Summary collapse

Instance Method Details

#trace(*args, &block) ⇒ Object



276
277
278
279
280
281
282
283
284
285
286
# File 'lib/tracing.rb', line 276

def trace *args, &block
  begin
    # This monstrosity reduces the steps when single-stepping:
    tracer = (Tracing.tracer ||= Tracing::Tracer.new) and
  (old_indent, old_nested, enabled = tracer.indent, tracer.nested, tracer.show(*args))

    block ? yield : (args.size == 0 ? tracer : enabled)
  ensure
    tracer.indent, tracer.nested = old_indent, old_nested
  end
end