1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
package HTML::FormFu::Constraint::AutoSet;
use Moose;
extends 'HTML::FormFu::Constraint::Set';
sub process {
my $self = shift;
my @set = map { _parse_value($_) } @{ $self->parent->_options };
$self->set( \@set );
return $self->SUPER::process(@_);
}
sub _parse_value {
my ($item) = @_;
if ( exists $item->{group} ) {
return map { _parse_value($_) } @{ $item->{group} };
}
else {
return $item->{value};
}
}
__PACKAGE__->meta->make_immutable;
1;
__END__
=head1 NAME
HTML::FormFu::Constraint::AutoSet - Set Constraint for Selects / Radiogroups / Checkboxgroups
=head1 DESCRIPTION
For use with L<HTML::FormFu::Element::Radiogroup>,
L<HTML::FormFu::Element::Select> and L<HTML::FormFu::Element::Checkboxgroup>
fields.
Ensures that the input value is one of the pre-defined element options.
=head1 SEE ALSO
Is a sub-class of, and inherits methods from L<HTML::FormFu::Constraint::Set>
L<HTML::FormFu>
=head1 AUTHOR
Carl Franks C<cfranks@cpan.org>
=head1 LICENSE
This library is free software, you can redistribute it and/or modify it under
the same terms as Perl itself.
=cut
|