Class: ActionDispatch::Routing::RouteSet::Dispatcher

Inherits:
Endpoint
  • Object
show all
Defined in:
lib/action_dispatch/routing/route_set.rb

Direct Known Subclasses

StaticDispatcher

Instance Method Summary collapse

Methods inherited from Endpoint

#app, #engine?, #matches?, #rack_app, #redirect?

Constructor Details

#initialize(raise_on_name_error) ⇒ Dispatcher

Returns a new instance of Dispatcher.



22
23
24
# File 'lib/action_dispatch/routing/route_set.rb', line 22

def initialize(raise_on_name_error)
  @raise_on_name_error = raise_on_name_error
end

Instance Method Details

#dispatcher?Boolean

Returns:

  • (Boolean)


26
# File 'lib/action_dispatch/routing/route_set.rb', line 26

def dispatcher?; true; end

#serve(req) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/action_dispatch/routing/route_set.rb', line 28

def serve(req)
  params     = req.path_parameters
  controller = controller req
  res        = controller.make_response! req
  dispatch(controller, params[:action], req, res)
rescue ActionController::RoutingError
  if @raise_on_name_error
    raise
  else
    [404, { "X-Cascade" => "pass" }, []]
  end
end