Gantry::Utils::Validate - Validates input values.


Gantry documentation Contained in the Gantry distribution.

Index


Code Index:

NAME

Top

Gantry::Utils::Validate - Validates input values.

SYNOPSIS

Top

$chk = Gantry::Utils::Validate->new();

if ( $chk->is_date( $date ) )

if ( $chk->is_email( $email ) )

if ( $chk->is_float( $float ) )

if ( $chk->is_ident( $ident ) )

if ( $chk->is_integer( $integer ) )

if ( $chk->is_ip( $ip ) )

if ( $chk->is_mac( $mac ) )

if ( $chk->is_number( $number ) )

if ( $chk->is_text( $text ) )

if ( $chk->is_time( $time ) )

DESCRIPTION

Top

This module allows the validation of many common types of input.

METHODS

Top

new

Standard constructor, call it first. It takes nothing.

is_date( $date )

This function takes a date, $date, and verifies that it is indeed a valid date. The date must be of the form "MM-DD-YYYY". The function returns either '1' or '0'.

is_email( $email )

This function checks to see if $email is a valid email address. It checks only the form of the email address and not if the username or the domain exist. The function returns either '1' or '0'.

is_float( $float )

This function checks to see if $float is a valid floating point number. The function returns either '1' or '0'.

is_ident( $ident )

This function checks to see if $ident is a valid text ident. This means it has text, and none of the text is a space. The function returns either '1' or '0'.

is_integer( $integer )

This function checks to see if $integer is in fact a valid integer number. The function returns either '1' or '0'.

is_ip( $ip )

This function checks to see if $ip is a valid ip address. The function returns either '1' or '0'.

is_mac( $mac )

This function checks to see if $mac contains the valid characters for a MAC address. It does not currently check to see if the MAC address is of the proper length. The function returns either '1' or '0'.

is_number( $number )

This function checks to see if $number is a valid number. It does this by checking if it passes is_integer() or is_float(). The function returns eiter a '1' or a '0'.

is_text( $text )

This function checks to see if $text does contain text. This is a fairly broad range of things mainly it must be defined and have a length that is greater than 0. The function returns either a '1' or a '0'.

is_time( $time )

This function checks to see if $time does contain a valid time. A valid date is in military time ( 0-23:0-59 ) seconds are optional.

SEE ALSO

Top

Gantry(3), Date::Calc(3)

LIMITATIONS

Top

This module depends on Date::Calc(3) for the is_date validation.

AUTHOR

Top

Tim Keefer <tkeefer@gmail.com>

Nicholas Studt <nstudt@angrydwarf.org>

COPYRIGHT and LICENSE

Top


Gantry documentation Contained in the Gantry distribution.

package Gantry::Utils::Validate;
use strict;
use Date::Calc qw( check_date );
use Mail::RFC822::Address ();

############################################################
# Functions                                                #
############################################################
sub new {
    my ( $class, $opt ) = @_;

    my $self = {};
    bless( $self, $class );

    # populate self with data from site
    return( $self );

} # end new

#-------------------------------------------------
# is_date( $date )
#-------------------------------------------------
sub is_date { 
    my( $self, $date ) = ( shift, shift );

    return( 0 ) if ( ! defined $date );

    return( 0 ) if ( $date !~ /^\d{1,2}-\d{1,2}-\d{4}$/ );

    my ( $month, $day, $year ) = split( '-', $date ); 
        
    return( 0 ) if ( ! check_date( $year, $month, $day ) );

    return( 1 );
} # END is_date 

#-------------------------------------------------
# is_email( $email )
#-------------------------------------------------
sub is_email {
    my( $self, $email ) = ( shift, shift );

    if ( Mail::RFC822::Address::valid( $email ) ) {
        return 1;
    }

    return 0;
} # END is_email

#-------------------------------------------------
# is_float( $float )
#-------------------------------------------------
sub is_float {
    my( $self, $float ) = ( shift, shift );

    return( 0 ) if ( ! defined $float );

    return( 1 ) if ( $self->is_integer( $float ) );

    return( 0 ) if ( $float !~ /^-?\d+\.\d+$/ );

    return( 1 );
} # END is_float

#-------------------------------------------------
# is_ident( $ident )
#-------------------------------------------------
sub is_ident {
    my ( $self, $ident ) = ( shift, shift );

    return( 0 ) if ( ! defined $ident );

    return( 0 ) if ( ! $self->is_text( $ident ) );

    return( 0 ) if ( $ident =~ /\s/ );

    return( 1 );
} # END is_ident

#-------------------------------------------------
# is_integer( $int )
#-------------------------------------------------
sub is_integer {
    my( $self,  $int ) = ( shift, shift );

    return( 0 ) if ( ! defined $int );

    return( 0 ) if ( $int !~ /^-?\d+$/ );

    return( 1 );
} # END is_integer

#-------------------------------------------------
# is_ip( $ip )
#-------------------------------------------------
sub is_ip {
    my ( $self, $ip ) = ( shift, shift );

    return( 0 ) if ( ! defined $ip );

    return( 0 ) if ( $ip !~ /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/ );

    return( 1 );
} # END is_ip

#-------------------------------------------------
# is_mac( $mac )
#-------------------------------------------------
sub is_mac {
    my( $self, $mac ) = ( shift, shift );

    return( 0 ) if ( ! defined $mac );

    # prolly needs to check more ...
    return( 0 ) if ( $mac !~ /^[0-9A-Fa-f:\.\-\ ]+$/m );
                      
    return( 1 );    

} # END is_mac

#-------------------------------------------------
# is_number( $number )
#-------------------------------------------------
sub is_number {
    my( $self, $number ) = ( shift, shift );

    return( 0 ) if ( ! defined $number );

    return( 1 ) if ( $self->is_integer( $number ) );

    return( 1 ) if ( $self->is_float( $number ) );

    return( 0 );
} # END is_number

#-------------------------------------------------
# is_text( $text )
#-------------------------------------------------
sub is_text {
    my ( $self, $text ) = ( shift, shift );

    return( 0 ) if ( ! defined $text );

    return( 0 ) if ( length( $text ) < 1 );

    return( 1 );
} # END is_text

#-------------------------------------------------
# is_time( $time )
#-------------------------------------------------
sub is_time {
    my ( $self, $time ) = ( shift, shift );

    return( 0 ) if ( ! defined $time );

    return( 0 ) if ( $time !~ /^\d+:\d+(:\d+)?$/ );

    my ( $hours, $minutes, $seconds ) = split( ':', $time );

    return( 0 ) if ( ( $hours < 0 ) || ( $hours > 23 ) );
    return( 0 ) if ( ( $minutes < 0 ) || ( $minutes > 59 ) );

    if ( defined $seconds ) {
        return( 0 ) if ( ( $seconds < 0 ) || ( $seconds > 59 ) );
    }

    return( 1 );
} # END is_time

# EOF
1;

__END__