Sha256: 0c010fd7af8e3f4f85058ac0b36060fffbc8e44ba22ed0edebf3a9f2ed8be3b8
Contents?: true
Size: 1.1 KB
Versions: 11
Compression:
Stored size: 1.1 KB
Contents
module RailsConnector class CmsDispatchController < ActionController::Metal def process(action) CmsEnv.new(request.env).load controller = target_controller(request.env) request.env["action_dispatch.request.path_parameters"][:controller] = controller.controller_path action = loaded_obj.controller_action_name if !obj_not_found? && action == "index" request.env["action_dispatch.request.path_parameters"][:action] = action self.response = controller.action(action).call(request.env) end private def target_controller(_env) return default_controller if obj_not_found? controller = "#{loaded_obj.controller_name}Controller".constantize if controller.respond_to?(:use_for_obj_dispatch?) && controller.use_for_obj_dispatch? controller else default_controller end rescue NameError default_controller end def loaded_obj request.env[CmsEnv::OBJ_ENV_KEY] end def obj_not_found? loaded_obj.is_a?(StandardError) end def default_controller CmsController end end end
Version data entries
11 entries across 11 versions & 1 rubygems