HTML::FormFu::Constraint::Range - Numerical Range Constraint


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

Index


Code Index:

NAME

Top

HTML::FormFu::Constraint::Range - Numerical Range Constraint

SYNOPSIS

Top

    type: Range
    min: 18
    max: 35

DESCRIPTION

Top

Numerical range constraint.

This constraint doesn't honour the not() value.

METHODS

Top

minimum

min

If defined, the input value must be equal to or greater than this.

min is an alias for minimum.

maximum

max

If defined, the input value must be equal to or less than this.

max is an alias for maximum.

SEE ALSO

Top

Is a sub-class of, and inherits methods from HTML::FormFu::Constraint

HTML::FormFu

AUTHOR

Top

Carl Franks cfranks@cpan.org

LICENSE

Top

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


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

package HTML::FormFu::Constraint::Range;
use Moose;
use MooseX::Aliases;

extends 'HTML::FormFu::Constraint';

use Scalar::Util qw( looks_like_number );

has minimum => (
    is      => 'rw',
    alias   => 'min',
    traits  => ['Chained'],
);

has maximum => (
    is      => 'rw',
    alias   => 'max',
    traits  => ['Chained'],
);

sub constrain_value {
    my ( $self, $value ) = @_;

    return 1 if !defined $value || $value eq '';

    return if !looks_like_number($value);

    if ( defined( my $min = $self->minimum ) ) {
        return 0 if $value < $min;
    }

    if ( defined( my $max = $self->maximum ) ) {
        return 0 if $value > $max;
    }

    return 1;
}

sub _localize_args {
    my ($self) = @_;

    return $self->min, $self->max;
}

__PACKAGE__->meta->make_immutable;

1;

__END__