6 use Test::More tests => 1;
16 package BAST::Web::Model::Constraint::AtLeast;
21 use BAST::Web::Model::Constraint;
23 extends 'BAST::Web::Model::Constraint';
25 has 'value' => (isa => 'Num', is => 'ro');
28 my ($self, $field) = @_;
29 if ($self->validation_value($field) >= $self->value) {
32 return $self->error_message;
36 sub error_message { 'must be at least '.shift->value; }
41 package BAST::Web::Model::Constraint::NoMoreThan;
46 use BAST::Web::Model::Constraint;
48 extends 'BAST::Web::Model::Constraint';
50 has 'value' => (isa => 'Num', is => 'ro');
53 my ($self, $field) = @_;
54 if ($self->validation_value($field) <= $self->value) {
57 return $self->error_message;
61 sub error_message { 'must be no more than '.shift->value; }
66 package BAST::Web::Model::Constraint::OnLength;
72 has 'units' => (isa => 'Str', is => 'ro');
74 override 'value' => sub {
75 return length(super());
78 override 'error_message' => sub {
80 return super().' '.$self->units;
85 package BAST::Web::Model::Constraint::LengthNoMoreThan;
90 use BAST::Web::Model::Constraint::NoMoreThan;
91 use BAST::Web::Model::Constraint::OnLength;
93 extends 'BAST::Web::Model::Constraint::NoMoreThan';
94 with 'BAST::Web::Model::Constraint::OnLength';