class Object

Make the trace method globally available:

Public Instance Methods

trace(*args) { |: (size == 0 ? tracer : enabled)| ... } click to toggle source
# File lib/tracing.rb, line 286
def trace *args, &block
  begin
    # This monstrosity reduces the steps when single-stepping:
    tracer = (Tracing.tracer ||= Tracing::Tracer.new) and
      (old_indent, old_nested, old_delayed, enabled = tracer.indent, tracer.nested, tracer.delayed, tracer.show(*args))

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