File Coverage

blib/lib/App/Jiffy/Util/Duration.pm
Criterion Covered Total %
statement 9 19 47.3
branch 0 4 0.0
condition 0 2 0.0
subroutine 3 4 75.0
pod 0 1 0.0
total 12 30 40.0


line stmt bran cond sub pod time code
1             package App::Jiffy::Util::Duration;
2              
3 1     1   7 use strict;
  1         55  
  1         36  
4 1     1   6 use warnings;
  1         2  
  1         29  
5              
6 1     1   5 use Exporter 'import';
  1         2  
  1         187  
7              
8             our @EXPORT_OK = qw/round/;
9              
10             sub round {
11 0     0 0   my $duration = shift;
12 0   0       my $minute_period = shift // 15;
13              
14             # Round seconds
15 0           my $seconds = $duration->seconds;
16 0 0         if ( $seconds >= 30 ) {
17 0           $duration->add( minutes => 1 );
18             }
19 0           $duration->subtract( seconds => $seconds );
20              
21             # Round minutes
22 0           my $minutes = $duration->minutes;
23 0 0         if ( $minutes % $minute_period >= $minute_period / 2 ) {
24 0           $duration->add( minutes => $minute_period - ( $minutes % $minute_period ) );
25             } else {
26 0           $duration->subtract( minutes => $minutes % $minute_period );
27             }
28             }
29              
30             1;