Sha256: bfd61fd18e6c841d0eb82491cb07d00e4d0183f8aaeb71b7c23d4276f345740e

Contents?: true

Size: 1.38 KB

Versions: 3

Compression:

Stored size: 1.38 KB

Contents

# frozen_string_literal: true

require 'trifle/traces/configuration'
require 'trifle/traces/tracer/hash'
require 'trifle/traces/tracer/null'
require 'trifle/traces/serializer/inspect'
require 'trifle/traces/serializer/json'
require 'trifle/traces/serializer/string'
require 'trifle/traces/middleware/rack'
require 'trifle/traces/middleware/rails_controller'
require 'trifle/traces/middleware/sidekiq'
require 'trifle/traces/version'

module Trifle
  module Traces
    class Error < StandardError; end
    # Your code goes here...

    def self.default
      @default ||= Configuration.new
    end

    def self.configure
      yield(default)

      default
    end

    def self.tracer=(tracer)
      Thread.current[:trifle_tracer] = tracer
    end

    def self.tracer
      Thread.current[:trifle_tracer]
    end

    def self.trace(*args, **keywords, &block)
      if tracer.nil?
        return block_given? ? yield : nil
      end

      tracer.trace(*args, **keywords, &block)
    end

    def self.tag(tag)
      return unless tracer

      tracer.tag(tag)
    end

    def self.artifact(name, path)
      return unless tracer

      tracer.artifact(name, path)
    end

    def self.fail!
      return unless tracer

      tracer.fail!
    end

    def self.warn!
      return unless tracer

      tracer.warn!
    end

    def self.ignore!
      return unless tracer

      tracer.ignore!
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
trifle-traces-1.1.2 lib/trifle/traces.rb
trifle-traces-1.1.1 lib/trifle/traces.rb
trifle-traces-1.1.0 lib/trifle/traces.rb