From d18a2742e01d195eb2d228207062aff49f7eb854 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 15 May 2010 09:08:40 +0200 Subject: Improve previous patch a bit [#3645 state:resolved] --- actionpack/lib/action_view/helpers/form_helper.rb | 6 +++--- actionpack/lib/action_view/helpers/form_tag_helper.rb | 9 +++------ actionpack/test/template/form_tag_helper_test.rb | 5 +++++ 3 files changed, 11 insertions(+), 9 deletions(-) (limited to 'actionpack') diff --git a/actionpack/lib/action_view/helpers/form_helper.rb b/actionpack/lib/action_view/helpers/form_helper.rb index 557f8454be..932e9e2f95 100644 --- a/actionpack/lib/action_view/helpers/form_helper.rb +++ b/actionpack/lib/action_view/helpers/form_helper.rb @@ -576,12 +576,12 @@ module ActionView # label(:post, :terms) do # 'Accept Terms.' # end - def label(object_name, method, content_or_options_with_block = nil, options = nil, &block) + def label(object_name, method, content_or_options = nil, options = nil, &block) if block_given? - options = content_or_options_with_block if content_or_options_with_block.is_a?(Hash) + options = content_or_options if content_or_options.is_a?(Hash) text = nil else - text = content_or_options_with_block + text = content_or_options end options ||= {} diff --git a/actionpack/lib/action_view/helpers/form_tag_helper.rb b/actionpack/lib/action_view/helpers/form_tag_helper.rb index 9d15805d46..2a3f826c15 100644 --- a/actionpack/lib/action_view/helpers/form_tag_helper.rb +++ b/actionpack/lib/action_view/helpers/form_tag_helper.rb @@ -156,15 +156,12 @@ module ActionView # # label_tag 'name', nil, :class => 'small_label' # # => - def label_tag(name = nil, content_or_options_with_block = nil, options = nil, &block) - if block_given? - options = content_or_options_with_block if content_or_options_with_block.is_a?(Hash) - end - + def label_tag(name = nil, content_or_options = nil, options = nil, &block) + options = content_or_options if block_given? && content_or_options.is_a?(Hash) options ||= {} options.stringify_keys! options["for"] = sanitize_to_id(name) unless name.blank? || options.has_key?("for") - content_tag :label, content_or_options_with_block || name.to_s.humanize, options, &block + content_tag :label, content_or_options || name.to_s.humanize, options, &block end # Creates a hidden form input field used to transmit data that would be lost due to HTTP's statelessness or diff --git a/actionpack/test/template/form_tag_helper_test.rb b/actionpack/test/template/form_tag_helper_test.rb index 1e116c041f..1c095b621e 100644 --- a/actionpack/test/template/form_tag_helper_test.rb +++ b/actionpack/test/template/form_tag_helper_test.rb @@ -297,6 +297,11 @@ class FormTagHelperTest < ActionView::TestCase assert_dom_equal('', output) end + def test_label_tag_with_block_and_argument_and_options + output = label_tag("clock", :id => "label_clock") { "Grandfather" } + assert_dom_equal('', output) + end + def test_boolean_options assert_dom_equal %(), check_box_tag("admin", 1, true, 'disabled' => true, :readonly => "yes") assert_dom_equal %(), check_box_tag("admin", 1, true, :disabled => false, :readonly => nil) -- cgit v1.2.3