Sha256: decb04d858df8c2e78973e2c4442038cf35fcd60d648e6bcc2e487c106af7807
Contents?: true
Size: 1.1 KB
Versions: 1
Compression:
Stored size: 1.1 KB
Contents
#:enddoc: module RailsConnector class CmsDispatchController < ActionController::Metal def process(action) CmsEnv.new(env).load controller = target_controller(env) env["action_dispatch.request.path_parameters"]["controller"] = controller.controller_path if !obj_not_found? && action == 'index' action = loaded_obj.controller_action_name end env["action_dispatch.request.path_parameters"]["action"] = action self.response = controller.action(action).call(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 env[CmsEnv::OBJ_ENV_KEY] end def obj_not_found? loaded_obj.is_a?(RailsConnector::ResourceNotFound) end def default_controller CmsController end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
infopark_rails_connector-6.8.0.beta.200.621.4c8e1b0 | lib/rails_connector/cms_dispatch_controller.rb |