You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 lines
1.1 KiB

1 month ago
  1. require 'action_dispatch/middleware/exception_wrapper'
  2. require 'action_dispatch/routing/inspector'
  3. require 'action_view'
  4. module ActionDispatch
  5. # patched class to prevent deprecated message
  6. class DebugExceptions
  7. private
  8. def render_exception(request, exception, wrapper)
  9. ## PVINCENT's ADDITION for TagWrapError
  10. log_error(request, wrapper)
  11. if exception.is_a?(Semantic::TagWrapError)
  12. backtrace_cleaner = request.get_header('action_dispatch.backtrace_cleaner')
  13. wrapper = ExceptionWrapper.new(backtrace_cleaner, exception.error)
  14. end
  15. # log_error(request, wrapper)
  16. ## END OF ADDITION
  17. raise exception unless request.get_header('action_dispatch.show_detailed_exceptions')
  18. begin
  19. content_type = request.formats.first
  20. rescue ActionDispatch::Http::MimeNegotiation::InvalidType
  21. content_type = Mime[:text]
  22. end
  23. if api_request?(content_type)
  24. render_for_api_request(content_type, wrapper)
  25. else
  26. render_for_browser_request(request, wrapper)
  27. end
  28. end
  29. end
  30. end