Module: Gaffe
- Defined in:
- lib/gaffe.rb,
lib/gaffe/errors.rb,
lib/gaffe/version.rb,
lib/gaffe/errors_controller.rb
Defined Under Namespace
Modules: Errors Classes: ErrorsController
Constant Summary collapse
- VERSION =
'1.0.2'
Class Method Summary collapse
-
.builtin_errors_controller ⇒ Object
Return our default controller.
-
.configuration ⇒ Object
Return the configuration settings.
-
.configure {|configuration| ... } ⇒ Object
Yield a block to populate @configuration.
-
.enable! ⇒ Object
Configure Rails to use our code when encountering exceptions.
-
.errors_controller_for_request(env) ⇒ Object
Return the right errors controller to use for the request that triggered the error.
-
.root ⇒ Object
Return the root path of the gem.
Class Method Details
.builtin_errors_controller ⇒ Object
Return our default controller
19 20 21 22 23 24 |
# File 'lib/gaffe.rb', line 19 def self.builtin_errors_controller @builtin_errors_controller ||= begin require 'gaffe/errors_controller' Gaffe::ErrorsController end end |
.configuration ⇒ Object
Return the configuration settings
14 15 16 |
# File 'lib/gaffe.rb', line 14 def self.configuration @configuration ||= OpenStruct.new end |
.configure {|configuration| ... } ⇒ Object
Yield a block to populate @configuration
9 10 11 |
# File 'lib/gaffe.rb', line 9 def self.configure yield configuration end |
.enable! ⇒ Object
Configure Rails to use our code when encountering exceptions
27 28 29 30 31 |
# File 'lib/gaffe.rb', line 27 def self.enable! Rails.application.config.exceptions_app = lambda do |env| Gaffe.errors_controller_for_request(env).action(:show).call(env) end end |
.errors_controller_for_request(env) ⇒ Object
Return the right errors controller to use for the request that triggered the error
35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/gaffe.rb', line 35 def self.errors_controller_for_request(env) controller = configuration.errors_controller if controller.is_a?(Hash) controller = controller.find { |pattern, _| env['REQUEST_URI'] =~ pattern }.try(:last) end controller ||= builtin_errors_controller controller.respond_to?(:constantize) ? controller.constantize : controller end |
.root ⇒ Object
Return the root path of the gem
48 49 50 |
# File 'lib/gaffe.rb', line 48 def self.root Pathname.new(File.('../../', __FILE__)) end |