Module: RequestExceptionHandler
- Defined in:
- lib/request_exception_handler.rb
Constant Summary collapse
- @@parse_request_parameters_exception_handler =
lambda do |request, exception| Thread.current[:request_exception] = exception request_body = request.respond_to?(:body) ? request.body : request.raw_post logger = RequestExceptionHandler.logger if logger.info? content_log = request_body if request_body.is_a?(StringIO) pos = request_body.pos content_log = request_body.read end logger.info "#{exception.class.name} occurred while parsing request parameters." + "\nContents:\n#{content_log}\n" request_body.pos = pos if pos end content_type = if request.respond_to?(:content_type_with_parameters) request.send :content_type_with_parameters # AbstractRequest else # rack request request.respond_to?(:content_mime_type) ? request.content_mime_type : request.content_type end { "body" => request_body, "content_type" => content_type, "content_length" => request.content_length } end
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.included(base) ⇒ Object
40 41 42 |
# File 'lib/request_exception_handler.rb', line 40 def self.included(base) base.prepend_before_filter :check_request_exception end |
.logger ⇒ Object
34 35 36 37 38 |
# File 'lib/request_exception_handler.rb', line 34 def self.logger defined?(Rails.logger) ? Rails.logger : defined?(RAILS_DEFAULT_LOGGER) ? RAILS_DEFAULT_LOGGER : Logger.new($stderr) end |
.reset_request_exception ⇒ Object
30 31 32 |
# File 'lib/request_exception_handler.rb', line 30 def self.reset_request_exception Thread.current[:request_exception] = nil end |
Instance Method Details
#check_request_exception ⇒ Object
44 45 46 47 |
# File 'lib/request_exception_handler.rb', line 44 def check_request_exception e = request_exception raise e if e && e.is_a?(Exception) end |
#request_exception ⇒ Object
49 50 51 52 53 54 |
# File 'lib/request_exception_handler.rb', line 49 def request_exception return @_request_exception if defined? @_request_exception @_request_exception = Thread.current[:request_exception] RequestExceptionHandler.reset_request_exception @_request_exception end |