ruby-changes:8092
From: xibbar <ko1@a...>
Date: Mon, 29 Sep 2008 00:42:31 +0900 (JST)
Subject: [ruby-changes:8092] Ruby:r19617 (trunk): * lib/cgi/html.rb (CGI::HtmlExtension::{radio_group, checkbox_group}):
xibbar 2008-09-29 00:41:12 +0900 (Mon, 29 Sep 2008) New Revision: 19617 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=19617 Log: * lib/cgi/html.rb (CGI::HtmlExtension::{radio_group, checkbox_group}): can specify the false as checked or selected value. [ruby-core:18306], [ruby-core:18307] * test/cgi/test_cgi_tag_helper.rb: add a test. Modified files: trunk/ChangeLog trunk/lib/cgi/html.rb trunk/test/cgi/test_cgi_tag_helper.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 19616) +++ ChangeLog (revision 19617) @@ -1,3 +1,11 @@ +Mon Sep 29 00:30:20 2008 Takeyuki Fujioka <xibbar@r...> + + * lib/cgi/html.rb (CGI::HtmlExtension::{radio_group, checkbox_group}): + can specify the false as checked or selected value. + [ruby-core:18306], [ruby-core:18307] + + * test/cgi/test_cgi_tag_helper.rb: add a test. + Sun Sep 28 23:08:38 2008 Takeyuki Fujioka <xibbar@r...> * lib/cgi/html.rb (CGI::HtmlExtension::popup_menu): Index: lib/cgi/html.rb =================================================================== --- lib/cgi/html.rb (revision 19616) +++ lib/cgi/html.rb (revision 19617) @@ -248,12 +248,12 @@ if value.kind_of?(String) checkbox(name, value) + value else - if value[value.size - 1] == true - checkbox(name, value[0], true) + - value[value.size - 2] + if value[-1] == true || value[-1] == false + checkbox(name, value[0], value[-1]) + + value[-2] else checkbox(name, value[0]) + - value[value.size - 1] + value[-1] end end }.join @@ -703,12 +703,12 @@ if value.kind_of?(String) radio_button(name, value) + value else - if value[value.size - 1] == true - radio_button(name, value[0], true) + - value[value.size - 2] + if value[-1] == true || value[-1] == false + radio_button(name, value[0], value[-1]) + + value[-2] else radio_button(name, value[0]) + - value[value.size - 1] + value[-1] end end }.join Index: test/cgi/test_cgi_tag_helper.rb =================================================================== --- test/cgi/test_cgi_tag_helper.rb (revision 19616) +++ test/cgi/test_cgi_tag_helper.rb (revision 19617) @@ -313,6 +313,17 @@ assert_match(/^<INPUT .*VALUE="aa".*>bb<INPUT .*VALUE="cc".*>dd$/,str) assert_match(/^<INPUT .*TYPE="radio".*>bb<INPUT .*TYPE="radio".*>dd$/,str) assert_match(/^<INPUT .*NAME="foo".*>bb<INPUT .*NAME="foo".*>dd$/,str) + str=cgi.checkbox_group("foo",["aa","bb"],["cc","dd",true]) + assert_match(/^<INPUT .*VALUE="aa".*>bb<INPUT .*VALUE="cc".*>dd$/,str) + assert_match(/^<INPUT .*TYPE="checkbox".*>bb<INPUT .*TYPE="checkbox".*>dd$/,str) + assert_match(/^<INPUT .*NAME="foo".*>bb<INPUT .*NAME="foo".*>dd$/,str) + assert_match(/^<INPUT .*>bb<INPUT .*CHECKED.*>dd$/,str) + if RUBY_VERSION>="1.9" + str=cgi.radio_group("foo",["aa","bb"],["cc","dd",false]) + assert_match(/^<INPUT .*VALUE="aa".*>bb<INPUT .*VALUE="cc".*>dd$/,str) + assert_match(/^<INPUT .*TYPE="radio".*>bb<INPUT .*TYPE="radio".*>dd$/,str) + assert_match(/^<INPUT .*NAME="foo".*>bb<INPUT .*NAME="foo".*>dd$/,str) + end end =begin -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/