Module: OopsieExceptions::Context

Defined in:
lib/oopsie_exceptions/context.rb

Constant Summary collapse

THREAD_KEY =
:oopsie_exceptions_context

Class Method Summary collapse

Class Method Details

.clearObject



22
23
24
# File 'lib/oopsie_exceptions/context.rb', line 22

def clear
  Thread.current[THREAD_KEY] = nil
end

.currentObject



10
11
12
# File 'lib/oopsie_exceptions/context.rb', line 10

def current
  Thread.current[THREAD_KEY] ||= {}
end

.from_rack_env(env) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/oopsie_exceptions/context.rb', line 26

def from_rack_env(env)
  request = Rack::Request.new(env)
  config = OopsieExceptions.configuration

  request_context = {
    url: request.url,
    method: request.request_method,
    ip: request.ip,
    user_agent: env["HTTP_USER_AGENT"],
    referer: env["HTTP_REFERER"],
    request_id: env["action_dispatch.request_id"] || env["HTTP_X_REQUEST_ID"],
    headers: extract_headers(env, config)
  }

  request_context.merge!(request_params_context(request, config))
  request_context.merge!(request_body_context(request, config))

  ctx = {
    request: request_context
  }

  ctx
end

.merge(hash) ⇒ Object



14
15
16
# File 'lib/oopsie_exceptions/context.rb', line 14

def merge(hash)
  current.merge!(hash)
end

.replace(hash) ⇒ Object



18
19
20
# File 'lib/oopsie_exceptions/context.rb', line 18

def replace(hash)
  Thread.current[THREAD_KEY] = hash
end