class OpenTracingTestTracer::Scope

Scope represents an OpenTracing Scope

See www.opentracing.io for more information.

Attributes

span[R]

Return the Span scoped by this Scope

@return [Span]

Public Class Methods

new(span, scope_stack, finish_on_close:) click to toggle source
# File lib/signalfx_test_tracer/scope.rb, line 8
def initialize(span, scope_stack, finish_on_close:)
  @span = span
  @scope_stack = scope_stack
  @finish_on_close = finish_on_close
  @closed = false
end

Public Instance Methods

close() click to toggle source

Close scope

Mark the end of the active period for the current thread and Scope, updating the ScopeManager#active in the process.

# File lib/signalfx_test_tracer/scope.rb, line 24
def close
  raise "Tried to close already closed span: #{inspect}" if @closed
  @closed = true

  @span.finish if @finish_on_close
  removed_scope = @scope_stack.pop

  if removed_scope != self # rubocop:disable Style/GuardClause
    raise 'Removed non-active scope, ' \
      "removed: #{removed_scope.inspect}, "\
      "expected: #{inspect}"
  end
end