From 2ee16ffeffbdd0998c60f36a976169789e3c8e27 Mon Sep 17 00:00:00 2001 From: Mischa Poslawsky Date: Sat, 26 Jul 2008 01:42:51 +0200 Subject: [PATCH] XXX: hidden array --- lib/HTML/Form/Simple.pm | 5 +++++ t/html.t | 24 +++++++++++++++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/lib/HTML/Form/Simple.pm b/lib/HTML/Form/Simple.pm index bbeb6b6..e2a586d 100644 --- a/lib/HTML/Form/Simple.pm +++ b/lib/HTML/Form/Simple.pm @@ -76,6 +76,11 @@ sub hidden { return wantarray ? @return : join(defined $, ? $, : '', @return); } + if (ref $value eq 'ARRAY') { + my @return = map { $self->hidden($name, $_, $attr) } @$value; + return wantarray ? @return : join(defined $, ? $, : '', @return); + } + $attr->{name } = $name if defined $name; $attr->{value} = $value if defined $value; $attr->{type} = 'hidden' unless defined $attr->{type}; diff --git a/t/html.t b/t/html.t index 3c6d8f4..a9ee150 100644 --- a/t/html.t +++ b/t/html.t @@ -5,7 +5,7 @@ use warnings; use Test::More; -plan tests => 53; +plan tests => 55; use_ok('HTML::Form::Simple'); @@ -58,6 +58,15 @@ is( 'hidden options' ); +is_deeply( + [ $form->hidden(foo => [1, 0], {class => 'test'}) ], + [ + '', + '', + ], + 'hidden array' +); + is_deeply( [ $form->hidden({2 => 0, 10 => 1}, {class => 'test'}) ], [ @@ -67,6 +76,19 @@ is_deeply( 'hidden hash' ); +{ + local $, = "\n"; + is( + scalar $form->hidden({2 => [1, 0], 10 => 2}, {class => 'test'}), + join("\n", + '', + '', + '', + ), + 'scalar hiddens' + ); +} + # submit is( -- 2.30.0