diff options
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 |
commit | fbb6be50a55fef24cdef97c522d1acc9787cbf2a (patch) | |
tree | f522afc16cf2773b2d5c075abf94c61a2667521a /actionpack/lib/action_controller | |
parent | 4aae538d9ffff3a00a81f3da52fa70f7fd79ac74 (diff) | |
download | rails-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')
-rw-r--r-- | actionpack/lib/action_controller/metal/mime_responds.rb | 3 |
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) |