package HTML::Widget::Constraint::Equal; use warnings; use strict; use base 'HTML::Widget::Constraint'; =head1 NAME HTML::Widget::Constraint::Equal - Equal Constraint =head1 SYNOPSIS my $c = $widget->constraint( 'Equal', 'foo', 'bar' ); =head1 DESCRIPTION Equal Constraint. All provided elements must be the same. Combine this with the All constraint to make sure all elements are equal. =head1 METHODS =head2 process =cut sub process { my ( $self, $w, $params ) = @_; my $results = []; my $equal = $params->{ ${ $self->names }[0] }; my $failures = 0; for my $name ( @{ $self->names } ) { $failures++ if $params->{$name} ne $equal; } if ($failures) { for my $name ( @{ $self->names } ) { push @$results, HTML::Widget::Error->new( { name => $name, message => $self->mk_message } ); } } return $results; } =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 Marcus Ramberg, 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;