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)