Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Simplify @responses hash initialization

@responses hash needs to be initialized with mime types that we get from
Collector#collect_mimes_from_class_level. Mime::Type class as key and nil as
value. This need to happen before content negotiation. Before that, it was
looping though mime types and executing mime-type-generated method inside
collector (see
AbstractController::Collector#generate_method_for_mime). That approach resulted
in 2 unnecessary method calls for each mime type
collected by Collector#collect_mimes_from_class_level.

Now hash is initialized in place, without usage of Collector#custom method.
  • Loading branch information...
commit 9b8c0ff391cdaf23e5a74198ad29f8983df0b9d7 1 parent 99975e7
@strzalek strzalek authored
Showing with 1 addition and 1 deletion.
  1. +1 −1  actionpack/lib/action_controller/metal/mime_responds.rb
2  actionpack/lib/action_controller/metal/mime_responds.rb
@@ -430,7 +430,7 @@ class Collector
def initialize(mimes)
@responses = {}
- mimes.each { |mime| send(mime) }
+ mimes.each { |mime| @responses["Mime::#{mime.upcase}".constantize] = nil }
def any(*args, &block)
Please sign in to comment.
Something went wrong with that request. Please try again.