class Algernon::Dispatcher

Attributes

request[R]
response[R]
route[R]

Public Class Methods

new(request, route) click to toggle source
# File lib/algernon/controller/dispatcher.rb, line 5
def initialize(request, route)
  @request = request
  @route = route
  process_request
end

Private Instance Methods

combine_parameters() click to toggle source
# File lib/algernon/controller/dispatcher.rb, line 24
def combine_parameters
  route_url_params = route.get_url_parameters(request.path_info)
  request.params.merge(route_url_params)
end
controller_response(controller, action) click to toggle source
# File lib/algernon/controller/dispatcher.rb, line 29
def controller_response(controller, action)
  controller.send(action)

  unless controller.get_response
    controller.render(action)
  end
  controller.get_response
end
process_request() click to toggle source
# File lib/algernon/controller/dispatcher.rb, line 13
def process_request
  params = combine_parameters

  request.instance_variable_set "@params", params

  controller_constant = route.controller
  controller_class = controller_constant.new(request)

  @response = controller_response(controller_class, route.action.to_sym)
end