File Coverage

blib/lib/Input/Validator/Constraint/Time.pm
Criterion Covered Total %
statement 22 22 100.0
branch 10 14 71.4
condition 10 17 58.8
subroutine 4 4 100.0
pod 1 1 100.0
total 47 58 81.0


line stmt bran cond sub pod time code
1             package Input::Validator::Constraint::Time;
2              
3 1     1   21229 use strict;
  1         2  
  1         31  
4 1     1   4 use warnings;
  1         1  
  1         25  
5              
6 1     1   4 use base 'Input::Validator::Constraint';
  1         2  
  1         495  
7              
8             sub is_valid {
9 8     8 1 820 my ($self, $value) = @_;
10              
11 8         7 my %args = @{$self->args};
  8         27  
12 8   50     22 my $re = $args{split} || ':';
13              
14 8         38 my ($h, $m, $s) = split($re, $value);
15 8 100 66     61 return 0 unless defined $h && defined $m && defined $s;
      66        
16              
17 7 50       29 $h =~ m/^\d+$/ || return 0;
18 7 100 66     39 $h >= 0 && $h <= 23 || return 0;
19              
20 5 50       592 $m =~ m/^\d+$/ || return 0;
21 5 100 66     26 $m >= 0 && $m <= 59 || return 0;
22              
23 4 50       12 $s =~ m/^\d+$/ || return 0;
24 4 50 33     15 $s >= 0 && $s <= 59 || return 0;
25              
26 4         19 return 1;
27             }
28              
29             1;
30             __END__