Module: RequestContext

Defined in:
lib/request_context.rb,
lib/request_context/version.rb

Constant Summary collapse

VERSION =
'0.0.1'

Class Method Summary collapse

Class Method Details

.request_contextObject

Returns the Hash request context.



24
25
26
# File 'lib/request_context.rb', line 24

def request_context
  Thread.current[:request_context]
end

.request_context=(request_context) ⇒ Object

Internal: Set the current request_context.

Examples

RequestContext.request_context = {origo: nil, url: 'https://www.remind101.com'}
# => {origo: nil, url: 'https://www.remind101.com'}

Returns the new Hash request context.



36
37
38
# File 'lib/request_context.rb', line 36

def request_context=(request_context)
  Thread.current[:request_context] = request_context
end

.with_request_context(request_context) ⇒ Object

Public: Runs the block with the given request context set.

Examples

RequestContext.request_context
# => {url: 'https://www.remind101.com'}

RequestContext.with_request_context({url: 'https://www.remind101.com/users/sign_in'}) do
  RequestContext.request_context
  # => {url: 'https://www.remind101.com/users/sign_in'}
end

RequestContext.request_context
# => {url: 'https://www.remind101.com'}


54
55
56
57
58
59
60
# File 'lib/request_context.rb', line 54

def with_request_context(request_context)
  last_request_context = RequestContext.request_context
  RequestContext.request_context = request_context
  yield
ensure
  RequestContext.request_context = last_request_context
end