HTML::Widget::Constraint::Time - Time Constraint


HTML-Widget documentation Contained in the HTML-Widget distribution.

Index


Code Index:

NAME

Top

HTML::Widget::Constraint::Time - Time Constraint

SYNOPSIS

Top

    my $c = $widget->constraint( 'Time', 'hour', 'minute', 'second' );

DESCRIPTION

Top

Time Constraint.

METHODS

Top

process

AUTHOR

Top

Sebastian Riedel, sri@oook.de

LICENSE

Top

This library is free software, you can redistribute it and/or modify it under the same terms as Perl itself.


HTML-Widget documentation Contained in the HTML-Widget distribution.
package HTML::Widget::Constraint::Time;

use warnings;
use strict;
use base 'HTML::Widget::Constraint';
use Date::Calc;

sub process {
    my ( $self, $w, $params ) = @_;

    return []
        unless ( $self->names && @{ $self->names } == 3 );

    my ( $hour, $min, $sec ) = @{ $self->names };
    my $h = $params->{$hour} || 0;
    my $m = $params->{$min}  || 0;
    my $s = $params->{$sec}  || 0;
    return [] unless ( $h && $m && $s );
    my $results = [];

    unless ( $h =~ /^\d+$/
        && $m =~ /^\d+$/
        && $s =~ /^\d+$/
        && Date::Calc::check_time( $h, $m, $s ) )
    {
        push @$results, HTML::Widget::Error->new(
            { name => $hour, message => $self->mk_message } );
        push @$results, HTML::Widget::Error->new(
            { name => $min, message => $self->mk_message } );
        push @$results, HTML::Widget::Error->new(
            { name => $sec, message => $self->mk_message } );
    }
    return $results;
}

1;