aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_controller/metal/mime_responds.rb
diff options
context:
space:
mode:
authorŁukasz Strzałkowski <lukasz.strzalkowski@gmail.com>2013-12-10 11:46:50 +0100
committerŁukasz Strzałkowski <lukasz.strzalkowski@gmail.com>2013-12-10 11:47:50 +0100
commitfbb6be50a55fef24cdef97c522d1acc9787cbf2a (patch)
treef522afc16cf2773b2d5c075abf94c61a2667521a /actionpack/lib/action_controller/metal/mime_responds.rb
parent4aae538d9ffff3a00a81f3da52fa70f7fd79ac74 (diff)
downloadrails-fbb6be50a55fef24cdef97c522d1acc9787cbf2a.tar.gz
rails-fbb6be50a55fef24cdef97c522d1acc9787cbf2a.tar.bz2
rails-fbb6be50a55fef24cdef97c522d1acc9787cbf2a.zip
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.
Diffstat (limited to 'actionpack/lib/action_controller/metal/mime_responds.rb')
-rw-r--r--actionpack/lib/action_controller/metal/mime_responds.rb3
1 files changed, 2 insertions, 1 deletions
diff --git a/actionpack/lib/action_controller/metal/mime_responds.rb b/actionpack/lib/action_controller/metal/mime_responds.rb
index b47abb8b8c..3cb2ebeb94 100644
--- a/actionpack/lib/action_controller/metal/mime_responds.rb
+++ b/actionpack/lib/action_controller/metal/mime_responds.rb
@@ -430,7 +430,8 @@ module ActionController #:nodoc:
def initialize(mimes)
@responses = {}
- mimes.each { |mime| send(mime) }
+
+ mimes.each { |mime| @responses["Mime::#{mime.upcase}".constantize] = nil }
end
def any(*args, &block)