package HTML::Widget::Constraint::Date;
use warnings;
use strict;
use base 'HTML::Widget::Constraint';
use Date::Calc;
=head1 NAME
HTML::Widget::Constraint::Date - Date Constraint
=head1 SYNOPSIS
my $c = $widget->constraint( 'Date', 'year', 'month', 'day' );
=head1 DESCRIPTION
Date Constraint.
=head1 METHODS
=head2 process
=cut
sub process {
my ( $self, $w, $params ) = @_;
return []
unless ( $self->names && @{ $self->names } == 3 );
my ( $year, $month, $day ) = @{ $self->names };
my $y = $params->{$year};
my $m = $params->{$month};
my $d = $params->{$day};
return [] unless ( $y && $m && $d );
my $results = [];
unless ( $y =~ /^\d+$/
&& $m =~ /^\d+$/
&& $d =~ /^\d+$/
&& Date::Calc::check_date( $y, $m, $d ) )
{
push @$results, HTML::Widget::Error->new(
{ name => $year, message => $self->mk_message } );
push @$results, HTML::Widget::Error->new(
{ name => $month, message => $self->mk_message } );
push @$results, HTML::Widget::Error->new(
{ name => $day, message => $self->mk_message } );
}
return $results;
}
=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;