lib/tracing.rb in tracing-2.0.0 vs lib/tracing.rb in tracing-2.0.1

- old
+ new

@@ -65,15 +65,15 @@ end end def trace(*args, &block) begin - old_indent, old_nested, old_delayed, enabled = @indent, @nested, @delayed, show(*args) + old_indent, old_nested, enabled = @indent, @nested, show(*args) # This monstrosity reduces the steps when single-stepping: block ? yield : (args.size == 0 ? self : enabled) ensure - @indent, @nested, @delayed = old_indent, old_nested, old_delayed + @indent, @nested = old_indent, old_nested end end def available_keys @available.keys @@ -213,17 +213,19 @@ ' '*@indent + args. map{|a| a.respond_to?(:call) ? a.call : a}. join(' ') - if @delayed == true - @delayed = message # Arrange to display this message later, if necessary - elsif @delayed - display key, @delayed # Display a delayed message, then the current one - @delayed = nil - display key, message + if @delay + @delayed = [@delayed, message].compact*"\n" # Arrange to display this message later, if necessary + @delay = false else + if @delayed + display key, @delayed # Display a delayed message, then the current one + @delayed = nil + @delay = false + end display key, message end end @indent += (enabled_prefix ? 1 : 0) !!enabled_prefix @@ -237,10 +239,10 @@ case s = control.to_s when /!\Z/ # Enable all nested trace calls nested = true s.sub(/!\Z/, '').to_sym when /\?\Z/ # Delay this message until a nested active trace - @delayed = true + @delay = true s.sub(/\?\Z/, '').to_sym else control end else