From a8560fa361958b33d76e4468eb5c07d82a20196e Mon Sep 17 00:00:00 2001 From: Angelo capilleri Date: Wed, 31 Oct 2012 14:25:51 +0100 Subject: if format is unknown NullMimeTypeObject is returned If a unknown format is passed in a request, the methods html?, xml?, json? ...etc Nil Exception. This patch add a class NullMimeTypeObject, that is returned when request.format is unknown and it responds false to the methods that ends with '?'. It refers to #7837, not fixes because it's not considered a improvement not a bug. --- actionpack/lib/action_dispatch/http/mime_type.rb | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'actionpack/lib/action_dispatch/http') diff --git a/actionpack/lib/action_dispatch/http/mime_type.rb b/actionpack/lib/action_dispatch/http/mime_type.rb index 3d560518e1..5ee6f2056e 100644 --- a/actionpack/lib/action_dispatch/http/mime_type.rb +++ b/actionpack/lib/action_dispatch/http/mime_type.rb @@ -153,7 +153,7 @@ module Mime end def lookup_by_extension(extension) - EXTENSION_LOOKUP[extension.to_s] + EXTENSION_LOOKUP[extension.to_s] || NullMimeTypeObject.new end # Registers an alias that's not used on mime type lookup, but can be referenced directly. Especially useful for @@ -301,6 +301,17 @@ module Mime method.to_s.ends_with? '?' end end + + class NullMimeTypeObject + private + def method_missing(method, *args) + if method.to_s.ends_with? '?' + false + else + super + end + end + end end require 'action_dispatch/http/mime_types' -- cgit v1.2.3