File Coverage

blib/lib/HTML/FormFu/Constraint/Length.pm
Criterion Covered Total %
statement 19 21 90.4
branch 9 10 90.0
condition 1 3 33.3
subroutine 5 6 83.3
pod 0 1 0.0
total 34 41 82.9


line stmt bran cond sub pod time code
1 7     7   10369 use strict;
  7         21  
  7         409  
2              
3             package HTML::FormFu::Constraint::Length;
4             $HTML::FormFu::Constraint::Length::VERSION = '2.07';
5             # ABSTRACT: Min/Max Length String Constraint
6              
7 7     7   43 use Moose;
  7         14  
  7         45  
8 7     7   60890 use MooseX::Attribute::Chained;
  7         18  
  7         218  
9 7     7   42 use MooseX::Aliases;
  7         17  
  7         50  
10              
11             extends 'HTML::FormFu::Constraint';
12              
13             has minimum => (
14             is => 'rw',
15             alias => 'min',
16             traits => ['Chained'],
17             );
18              
19             has maximum => (
20             is => 'rw',
21             alias => 'max',
22             traits => ['Chained'],
23             );
24              
25             sub constrain_value {
26 15     15 0 78 my ( $self, $value ) = @_;
27              
28 15 50 33     153 return 1 if !defined $value || $value eq '';
29              
30 15 100       488 if ( defined( my $min = $self->minimum ) ) {
31 9 100       31 return 0 if length $value < $min;
32             }
33              
34 12 100       373 if ( defined( my $max = $self->maximum ) ) {
35 9 100       39 return 0 if length $value > $max;
36             }
37              
38 8         29 return 1;
39             }
40              
41             sub _localize_args {
42 0     0     my ($self) = @_;
43              
44 0           return $self->min, $self->max;
45             }
46              
47             __PACKAGE__->meta->make_immutable;
48              
49             1;
50              
51             __END__
52              
53             =pod
54              
55             =encoding UTF-8
56              
57             =head1 NAME
58              
59             HTML::FormFu::Constraint::Length - Min/Max Length String Constraint
60              
61             =head1 VERSION
62              
63             version 2.07
64              
65             =head1 DESCRIPTION
66              
67             Checks the input value meets both a minimum and maximum length.
68              
69             This constraint doesn't honour the C<not()> value.
70              
71             =head1 METHODS
72              
73             =head2 minimum
74              
75             =head2 min
76              
77             The minimum input string length.
78              
79             L</min> is an alias for L</minimum>.
80              
81             =head2 maximum
82              
83             =head2 max
84              
85             The maximum input string length.
86              
87             L</max> is an alias for L</maximum>.
88              
89             =head1 SEE ALSO
90              
91             Is a sub-class of, and inherits methods from L<HTML::FormFu::Constraint>
92              
93             L<HTML::FormFu>
94              
95             =head1 AUTHOR
96              
97             Carl Franks C<cfranks@cpan.org>
98              
99             =head1 LICENSE
100              
101             This library is free software, you can redistribute it and/or modify it under
102             the same terms as Perl itself.
103              
104             =head1 AUTHOR
105              
106             Carl Franks <cpan@fireartist.com>
107              
108             =head1 COPYRIGHT AND LICENSE
109              
110             This software is copyright (c) 2018 by Carl Franks.
111              
112             This is free software; you can redistribute it and/or modify it under
113             the same terms as the Perl 5 programming language system itself.
114              
115             =cut