Sha256: 091eb4fa61a51d6afbbc243038f8adb142a9d3f570e24ed5c0c72912032edf6d

Contents?: true

Size: 866 Bytes

Versions: 45

Compression:

Stored size: 866 Bytes

Contents

require 'honeybadger/conversions'

module Honeybadger
  # @api private
  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 helpers


    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

45 entries across 45 versions & 1 rubygems

Version Path
honeybadger-5.8.0 lib/honeybadger/context_manager.rb
honeybadger-5.7.0 lib/honeybadger/context_manager.rb
honeybadger-5.6.0 lib/honeybadger/context_manager.rb
honeybadger-5.5.1 lib/honeybadger/context_manager.rb
honeybadger-5.5.0 lib/honeybadger/context_manager.rb
honeybadger-5.4.1 lib/honeybadger/context_manager.rb
honeybadger-5.4.0 lib/honeybadger/context_manager.rb
honeybadger-5.3.0 lib/honeybadger/context_manager.rb
honeybadger-5.2.1 lib/honeybadger/context_manager.rb
honeybadger-5.0.2 lib/honeybadger/context_manager.rb
honeybadger-5.0.1 lib/honeybadger/context_manager.rb
honeybadger-5.0.0 lib/honeybadger/context_manager.rb
honeybadger-5.0.0.beta1 lib/honeybadger/context_manager.rb
honeybadger-4.12.2 lib/honeybadger/context_manager.rb
honeybadger-4.12.1 lib/honeybadger/context_manager.rb
honeybadger-4.12.0 lib/honeybadger/context_manager.rb
honeybadger-4.11.0 lib/honeybadger/context_manager.rb
honeybadger-4.10.0 lib/honeybadger/context_manager.rb
honeybadger-4.9.0 lib/honeybadger/context_manager.rb
honeybadger-4.8.0 lib/honeybadger/context_manager.rb