module RequestExceptionHandler
The mixin that provides the request_exception
by default included into ActionController::Base
Constants
- THREAD_LOCAL_NAME
Public Class Methods
included(base)
click to toggle source
# File lib/request_exception_handler.rb, line 52 def self.included(base) base.prepend_before_filter :check_request_exception end
logger()
click to toggle source
Retrieves the Rails logger.
# File lib/request_exception_handler.rb, line 45 def self.logger @@parse_request_parameters_exception_logger ||= defined?(Rails.logger) ? Rails.logger : defined?(RAILS_DEFAULT_LOGGER) ? RAILS_DEFAULT_LOGGER : Logger.new(STDERR) end
reset_request_exception()
click to toggle source
Resets the current request_exception
(to nil).
# File lib/request_exception_handler.rb, line 57 def self.reset_request_exception store_request_exception nil end
store_request_exception(exception)
click to toggle source
Resets the current request_exception
(to nil).
# File lib/request_exception_handler.rb, line 64 def self.store_request_exception(exception) Thread.current.thread_variable_set THREAD_LOCAL_NAME, exception end
Public Instance Methods
check_request_exception()
click to toggle source
Checks and raises a request_exception
(gets prepended as a before filter).
# File lib/request_exception_handler.rb, line 94 def check_request_exception if e = request_exception raise e if e.is_a?(Exception) end end
request_exception()
click to toggle source
Retrieves and keeps track of the current request exception if any.
# File lib/request_exception_handler.rb, line 69 def request_exception return @_request_exception if defined? @_request_exception @_request_exception = Thread.current.thread_variable_get(THREAD_LOCAL_NAME) RequestExceptionHandler.reset_request_exception @_request_exception end