Simplify handling of defaults/options in button_tag

There's no need to rely on Active Support's Hash#reverse_merge for
simple cases with default values, since we can just merge from the
default rather than reverse merge from the options.

This also avoids the creation of one extra hash object by moving to a
Hash#merge! call.
This commit is contained in:
Carlos Antonio da Silva 2014-03-04 08:21:32 -03:00
parent ecda6dfbdc
commit 8b1ccd5949

@ -469,16 +469,13 @@ def submit_tag(value = "Save changes", options = {})
# # => <button data-disable-with="Please wait..." name="button" type="submit">Checkout</button>
#
def button_tag(content_or_options = nil, options = nil, &block)
default_options = { 'name' => 'button', 'type' => 'submit' }
if content_or_options.is_a? Hash
options = content_or_options
else
options ||= {}
end
options = options.stringify_keys
options = options.reverse_merge default_options
options = { 'name' => 'button', 'type' => 'submit' }.merge!(options.stringify_keys)
if block_given?
content_tag :button, options, &block