New Features¶ ↑
-
An exception_page plugin has been added for displaying debugging information for a given exception. It is based on Rack::ShowExceptions, with the following differences:
-
Not a middleware, so it doesn’t handle exceptions itself, and has no effect on the callstack unless the exception_page method is called.
-
Supports external javascript and stylesheets, allowing context toggling to work in applications that use a content security policy to restrict inline javascript and stylesheets (:assets, :css_file, and :js_file options).
-
Has fewer dependencies (does not require ostruct and erb).
-
Sets the Content-Type for the response, and returns the body string, but does not modify other headers or the response status.
-
Supports a configurable amount of context lines in backtraces (:context option).
-
Supports optional JSON formatted output, if used with the json plugin (:json option).
Because this plugin just adds a method you can call, you can selectively choose when to display a debugging page and when not to, as well as customize the debugging parameters on a per-call basis (such as returning JSON formatted debugging information for JSON requests, and HTML formatted debugging information for normal requests).
-
Other Improvements¶ ↑
-
The common_logger plugin now correctly handles cases where an exception is being raised and there is no rack response to introspect.
Backwards Compatibility¶ ↑
-
Stream#write in the streaming plugin now returns the number of bytes written instead of self, so it works with IO.copy_stream.