class Gaffe::ErrorsControllerResolver
Constants
- BUILTIN_CONTROLLER
Constants
Attributes
controller[R]
Accessors
Public Class Methods
new(env)
click to toggle source
# File lib/gaffe/errors_controller_resolver.rb, line 12 def initialize(env) @env = env end
Public Instance Methods
resolved_controller()
click to toggle source
# File lib/gaffe/errors_controller_resolver.rb, line 16 def resolved_controller # Use the configured controller first controller = Gaffe.configuration.errors_controller # Parse the request if multiple controllers are configured controller = request_controller(controller) if controller.is_a?(Hash) # Fall back on the builtin errors controller controller ||= BUILTIN_CONTROLLER.call # Make sure we return a Class controller.respond_to?(:constantize) ? controller.constantize : controller end
Private Instance Methods
request_controller(controllers)
click to toggle source
# File lib/gaffe/errors_controller_resolver.rb, line 32 def request_controller(controllers) matched_controllers = controllers.find do |pattern, _| relative_url = @env['REQUEST_URI'] absolute_url = @env['HTTP_HOST'] + relative_url [relative_url, absolute_url].any? { |url| (url =~ pattern).present? } end matched_controllers.try(:last) end