package HTML::Widget::Constraint::Length; use warnings; use strict; use base 'HTML::Widget::Constraint'; __PACKAGE__->mk_accessors(qw/minimum maximum/); *min = \&minimum; *max = \&maximum; =head1 NAME HTML::Widget::Constraint::Length - Length Constraint =head1 SYNOPSIS my $c = $widget->constraint( 'Length', 'foo' ); $c->min(23); $c->max(50); =head1 DESCRIPTION Length Constraint. =head1 METHODS =head2 maximum Arguments: $max_value =head2 minimum Arguments: $min_value =head2 validate =cut sub validate { my ( $self, $value ) = @_; # Return valid on an empty value return 1 unless defined($value); return 1 if ( $value eq '' ); my $minimum = $self->minimum; my $maximum = $self->maximum; my $failed = 0; if ($minimum) { $failed++ unless ( length($value) >= $minimum ); } if ($maximum) { $failed++ unless ( length($value) <= $maximum ); } return !$failed; } =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;