lib/rambulance/exceptions_app.rb in rambulance-0.6.0 vs lib/rambulance/exceptions_app.rb in rambulance-1.0.0
- old
+ new
@@ -10,15 +10,13 @@
end.invert
class ExceptionsApp < ActionController::Base
layout :layout_name
- BAD_REQUEST_EXCEPTION = begin
- ActionController::BadRequest
- rescue NameError
- TypeError # Rails 3.2 doesn't know about ActionController::BadRequest
- end
+ if self.respond_to?(:skip_forgery_protection)
+ skip_forgery_protection
+ end
def self.call(env)
exception = env["action_dispatch.exception"]
status_in_words = if exception
ActionDispatch::ExceptionWrapper.rescue_responses[exception.class.to_s]
@@ -31,11 +29,11 @@
action(status_in_words).call(env)
end
def self.local_prefixes
[Rambulance.view_path]
- end if ActionPack::VERSION::STRING >= "4.2.0"
+ end
ERROR_HTTP_STATUSES.values.each do |status_in_words|
eval <<-ACTION, nil, __FILE__, __LINE__ + 1
def #{status_in_words}
render(template_exists?(error_path) ? error_path : error_path(:internal_server_error))
@@ -55,26 +53,21 @@
private
def process_action(*)
begin
request.GET
- rescue BAD_REQUEST_EXCEPTION
+ rescue ActionController::BadRequest
request.env["MALFORMED_QUERY_STRING"], request.env["QUERY_STRING"] = request.env["QUERY_STRING"], ""
end
begin
request.POST
- rescue BAD_REQUEST_EXCEPTION, ArgumentError
+ rescue ActionController::BadRequest
request.env["MALFORMED_BODY"], request.env["rack.input"] = request.env["rack.input"], StringIO.new
end
# The #formats method needs to be called after the sanitization above.
- if request.respond_to?(:formats)
- request.formats << Mime::Type.lookup('text/plain')
- elsif request.respond_to?(:format) && status == 406
- # TODO: Remove this conditional when dropping support for Rails 3.2
- request.format = Mime::Type.lookup('text/plain')
- end
+ request.formats << Mime::Type.lookup('text/plain')
super
end
def send_action(name, *args)