Sha256: 1060cf722d4124e49c7e8fa7dd0c12b4c8da2d8be3e75eb3e051d3a0a1d16cf2

Contents?: true

Size: 1.05 KB

Versions: 9

Compression:

Stored size: 1.05 KB

Contents

# frozen_string_literal: true

module Jaeger
  module Client
    # Scope represents an OpenTracing Scope
    #
    # See http://www.opentracing.io for more information.
    class Scope
      def initialize(span, scope_stack, finish_on_close:)
        @span = span
        @scope_stack = scope_stack
        @finish_on_close = finish_on_close
        @closed = false
      end

      # Return the Span scoped by this Scope
      #
      # @return [Span]
      attr_reader :span

      # Close scope
      #
      # Mark the end of the active period for the current thread and Scope,
      # updating the ScopeManager#active in the process.
      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
    end
  end
end

Version data entries

9 entries across 9 versions & 2 rubygems

Version Path
jaeger-client-0.9.0 lib/jaeger/client/scope.rb
jaeger-client-0.8.0 lib/jaeger/client/scope.rb
jaeger-client-0.7.1 lib/jaeger/client/scope.rb
jaeger-client-0.7.0 lib/jaeger/client/scope.rb
jaeger-client-0.6.1 lib/jaeger/client/scope.rb
boost-jaeger-client-0.7.1 lib/jaeger/client/scope.rb
boost-jaeger-client-0.7.0 lib/jaeger/client/scope.rb
jaeger-client-0.6.0 lib/jaeger/client/scope.rb
jaeger-client-0.5.0 lib/jaeger/client/scope.rb