Skip to content
Browse files

Improve previous patch a bit [#3645 state:resolved]

  • Loading branch information...
1 parent 6e69b42 commit d18a2742e01d195eb2d228207062aff49f7eb854 @josevalim josevalim committed May 15, 2010
View
6 actionpack/lib/action_view/helpers/form_helper.rb
@@ -576,12 +576,12 @@ def fields_for(record_or_name_or_array, *args, &block)
# 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 ||= {}
View
9 actionpack/lib/action_view/helpers/form_tag_helper.rb
@@ -156,15 +156,12 @@ def text_field_tag(name, value = nil, options = {})
#
# 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
View
5 actionpack/test/template/form_tag_helper_test.rb
@@ -297,6 +297,11 @@ def test_label_tag_with_block_and_argument
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)

0 comments on commit d18a274

Please sign in to comment.
Something went wrong with that request. Please try again.