Sha256: ff08f5704a585bb3e77c5c64d1aed8f231fc1edddb780e234a9616d46039a68f

Contents?: true

Size: 850 Bytes

Versions: 2

Compression:

Stored size: 850 Bytes

Contents

require 'honeybadger/conversions'

module Honeybadger
  class ContextManager
    include Conversions

    def self.current
      Thread.current[:__hb_context_manager] ||= new
    end

    def initialize
      @mutex = Mutex.new
      _initialize
    end

    def clear!
      _initialize
    end

    # Internal accessors

    def set_context(hash)
      @mutex.synchronize do
        @context ||= {}
        @context.update(Context(hash))
      end
    end

    def get_context
      @mutex.synchronize { @context }
    end

    def set_rack_env(env)
      @mutex.synchronize { @rack_env = env }
    end

    def get_rack_env
      @mutex.synchronize { @rack_env }
    end

    private

    attr_accessor :custom, :rack_env

    def _initialize
      @mutex.synchronize do
        @context = nil
        @rack_env = nil
      end
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
honeybadger-3.2.0 lib/honeybadger/context_manager.rb
honeybadger-3.2.0.beta1 lib/honeybadger/context_manager.rb