From 7701e6466dd5f6ca1b3eb1bfaf73f1d0723bb324 Mon Sep 17 00:00:00 2001 From: Michael Koziarski Date: Mon, 21 Jan 2008 21:08:28 +0000 Subject: Add label_tag helper for generating elements. Closes #10802 [DefV] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8685 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionpack/CHANGELOG | 2 ++ actionpack/lib/action_view/helpers/form_tag_helper.rb | 18 ++++++++++++++++++ actionpack/test/template/form_tag_helper_test.rb | 18 ++++++++++++++++++ 3 files changed, 38 insertions(+) diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG index 1258967889..7f9a948f66 100644 --- a/actionpack/CHANGELOG +++ b/actionpack/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Add label_tag helper for generating elements. #10802 [DefV] + * Introduce TemplateFinder to handle view paths and lookups. #10800 [Pratik Naik] * Performance: optimize route recognition. Large speedup for apps with many resource routes. #10835 [oleganza] diff --git a/actionpack/lib/action_view/helpers/form_tag_helper.rb b/actionpack/lib/action_view/helpers/form_tag_helper.rb index 077465086b..a536b5bf67 100644 --- a/actionpack/lib/action_view/helpers/form_tag_helper.rb +++ b/actionpack/lib/action_view/helpers/form_tag_helper.rb @@ -114,6 +114,24 @@ module ActionView tag :input, { "type" => "text", "name" => name, "id" => name, "value" => value }.update(options.stringify_keys) end + # Creates a label field + # + # ==== Options + # * Creates standard HTML attributes for the tag. + # + # ==== Examples + # label_tag 'name' + # # => + # + # label_tag 'name', 'Your name' + # # => + # + # label_tag 'name', nil, :class => 'small_label' + # # => + def label_tag(name, text = nil, options = {}) + content_tag :label, text || name.humanize, { "for" => name }.update(options.stringify_keys) + end + # Creates a hidden form input field used to transmit data that would be lost due to HTTP's statelessness or # data that should be hidden from the user. # diff --git a/actionpack/test/template/form_tag_helper_test.rb b/actionpack/test/template/form_tag_helper_test.rb index 3ca3e743eb..4160c838cc 100644 --- a/actionpack/test/template/form_tag_helper_test.rb +++ b/actionpack/test/template/form_tag_helper_test.rb @@ -188,6 +188,24 @@ class FormTagHelperTest < Test::Unit::TestCase assert_dom_equal expected, actual end + def test_label_tag_without_text + actual = label_tag "title" + expected = %() + assert_dom_equal expected, actual + end + + def test_label_tag_with_text + actual = label_tag "title", "My Title" + expected = %() + assert_dom_equal expected, actual + end + + def test_label_tag_class_string + actual = label_tag "title", "My Title", "class" => "small_label" + expected = %() + assert_dom_equal expected, actual + end + def test_boolean_optios 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