aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2010-05-15 09:08:40 +0200
committerJosé Valim <jose.valim@gmail.com>2010-05-15 09:08:40 +0200
commitd18a2742e01d195eb2d228207062aff49f7eb854 (patch)
treebda97721b4410a221bd3405a440931f6f2de1869 /actionpack
parent6e69b42b21d8e76c4d87b6fbc4222f55d3b11a06 (diff)
downloadrails-d18a2742e01d195eb2d228207062aff49f7eb854.tar.gz
rails-d18a2742e01d195eb2d228207062aff49f7eb854.tar.bz2
rails-d18a2742e01d195eb2d228207062aff49f7eb854.zip
Improve previous patch a bit [#3645 state:resolved]
Diffstat (limited to 'actionpack')
-rw-r--r--actionpack/lib/action_view/helpers/form_helper.rb6
-rw-r--r--actionpack/lib/action_view/helpers/form_tag_helper.rb9
-rw-r--r--actionpack/test/template/form_tag_helper_test.rb5
3 files changed, 11 insertions, 9 deletions
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 <a href="/terms">Terms</a>.'
# 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'
# # => <label for="name" class="small_label">Name</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('<label for="clock">Grandfather</label>', output)
end
+ def test_label_tag_with_block_and_argument_and_options
+ output = label_tag("clock", :id => "label_clock") { "Grandfather" }
+ assert_dom_equal('<label for="clock" id="label_clock">Grandfather</label>', output)
+ end
+
def test_boolean_options
assert_dom_equal %(<input checked="checked" disabled="disabled" id="admin" name="admin" readonly="readonly" type="checkbox" value="1" />), check_box_tag("admin", 1, true, 'disabled' => true, :readonly => "yes")
assert_dom_equal %(<input checked="checked" id="admin" name="admin" type="checkbox" value="1" />), check_box_tag("admin", 1, true, :disabled => false, :readonly => nil)