Sha256: 9dd4291fef4ee0bc18b58bc2f084c00f81824a4fcaf6fe068003ff9503a2d4fe
Contents?: true
Size: 1 KB
Versions: 6
Compression:
Stored size: 1 KB
Contents
# frozen_string_literal: true module Praxis module BootloaderStages class Routing < Stage class Target attr_reader :action def initialize(application, controller, action) @application = application @controller = controller @action = action end def call(request) request.action = @action dispatcher = Dispatcher.current(application: @application) dispatcher.dispatch(@controller, @action, request) end end def execute application.controllers.each do |controller| controller.definition.actions.each do |action_name, action| target = target_factory(controller, action_name) application.router.add_route target, action.route end end end def target_factory(controller, action_name) action = controller.definition.actions.fetch(action_name) Target.new(application, controller, action) end end end end
Version data entries
6 entries across 6 versions & 1 rubygems