Sha256: 1fa81f7516842bacec169a23e119ba76d44cf4dd880b4935f49ab82d65a0d745

Contents?: true

Size: 782 Bytes

Versions: 12

Compression:

Stored size: 782 Bytes

Contents

module Honeybadger
  class ContextManager

    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(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

12 entries across 12 versions & 1 rubygems

Version Path
honeybadger-3.1.2 lib/honeybadger/context_manager.rb
honeybadger-3.1.1 lib/honeybadger/context_manager.rb
honeybadger-3.1.0 lib/honeybadger/context_manager.rb
honeybadger-3.0.2 lib/honeybadger/context_manager.rb
honeybadger-3.0.1 lib/honeybadger/context_manager.rb
honeybadger-3.0.0 lib/honeybadger/context_manager.rb
honeybadger-3.0.0.beta6 lib/honeybadger/context_manager.rb
honeybadger-3.0.0.beta5 lib/honeybadger/context_manager.rb
honeybadger-3.0.0.beta4 lib/honeybadger/context_manager.rb
honeybadger-3.0.0.beta3 lib/honeybadger/context_manager.rb
honeybadger-3.0.0.beta2 lib/honeybadger/context_manager.rb
honeybadger-3.0.0.beta1 lib/honeybadger/context_manager.rb