Class: Brut::FrontEnd::RouteHooks::SetupRequestContext

Inherits:
Brut::FrontEnd::RouteHook show all
Defined in:
lib/brut/front_end/route_hooks/setup_request_context.rb

Overview

Sets up the Brut::FrontEnd::RequestContext based on the contents of the session. This is so that downstream handlers and hooks can have access to richer data than the hashes and strings provided by Rack.

Instance Method Summary collapse

Methods inherited from Brut::FrontEnd::RouteHook

#after, #continue

Methods included from Brut::Framework::Errors

#abstract_method!, #bug!

Methods included from HandlingResults

#http_status, #redirect_to

Instance Method Details

#before(session:, request:, env:) ⇒ Object



5
6
7
8
9
10
11
12
13
14
# File 'lib/brut/front_end/route_hooks/setup_request_context.rb', line 5

def before(session:,request:,env:)
  flash = session.flash
  session[:_flash] ||= flash
  host_uri = URI.parse("#{request.scheme}://#{request.host}:#{request.port}")
  Thread.current.thread_variable_set(
    :request_context,
    Brut::FrontEnd::RequestContext.new(env:,session:session,flash:,xhr: request.xhr?,body: request.body, host: host_uri)
  )
  continue
end