package HTML::Widget::Constraint::Any; use warnings; use strict; use base 'HTML::Widget::Constraint'; =head1 NAME HTML::Widget::Constraint::Any - Any Constraint =head1 SYNOPSIS my $c = $widget->constraint( 'Any', 'foo', 'bar' ); =head1 DESCRIPTION One or more of the named fields must be present. =head1 METHODS =head2 process =cut sub process { my ( $self, $w, $params ) = @_; my $results = []; my $present = 0; for my $name ( @{ $self->names } ) { unless ( $params->{$name} ) { push @$results, HTML::Widget::Error->new( { name => $name, message => $self->mk_message } ); } else { $present++ } } $present = $self->not ? !$present : $present; return $present ? [] : $results; } =head2 default_message =cut sub default_message {'Alternative Missing'} =head2 render_errors Arguments: @names A list of element names for which an error should be displayed. If this is not set, the default behaviour is for the error to be displayed for all of the Constraint's named elements. =head1 AUTHOR Sebastian Riedel, C =head1 LICENSE This library is free software, you can redistribute it and/or modify it under the same terms as Perl itself. =cut 1;