Sha256: 72ebd20ed2738bec9b81c2bcebb14126e0a514ecbc2b143350b1108ae3f16b58

Contents?: true

Size: 1.01 KB

Versions: 5

Compression:

Stored size: 1.01 KB

Contents

# frozen_string_literal: true

require_relative "stack_trace/version"
require_relative "stack_trace/configuration"
require_relative "stack_trace/argument_extractor"
require_relative "stack_trace/patch/object"
require_relative "stack_trace/patch/class"
require_relative "stack_trace/patch/nil_class"
require_relative "stack_trace/patch/numeric"
require_relative "stack_trace/patch/false_class"
require_relative "stack_trace/patch/true_class"
require_relative "stack_trace/patch/symbol"
require_relative "stack_trace/ext/stack_trace"

module StackTrace
  class << self
    def configure(&block)
      return false if configuration.frozen?

      block.call(configuration)

      Sidecar.run
      configuration.freeze
    end

    def trace(&block)
      return block.call if trace_point.enabled?

      start_trace # This creates the wrapper span

      trace_point.enable do
        block.call
      end

      complete_trace
    end

    private

    def configuration
      @configuration ||= Configuration.new
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
stack_trace-0.8.0 lib/stack_trace.rb
stack_trace-0.7.0 lib/stack_trace.rb
stack_trace-0.6.0 lib/stack_trace.rb
stack_trace-0.5.0 lib/stack_trace.rb
stack_trace-0.4.0 lib/stack_trace.rb