File Coverage

blib/lib/Filter/Cleanup.pm
Criterion Covered Total %
statement 28 35 80.0
branch 2 4 50.0
condition 1 2 50.0
subroutine 9 9 100.0
pod 0 1 0.0
total 40 51 78.4


line stmt bran cond sub pod time code
1             package Filter::Cleanup;
2             # ABSTRACT: Execute cleanup statements when scope closes, regardless of errors
3             $Filter::Cleanup::VERSION = '0.03';
4              
5 1     1   147506 use 5.012;
  1         6  
6 1     1   5 use strict;
  1         1  
  1         15  
7 1     1   4 use warnings;
  1         1  
  1         18  
8 1     1   551 use Keyword::Declare;
  1         72419  
  1         7  
9              
10             our $CLEANUP;
11              
12 1     1   8 sub import {
  0         0  
13 1 50 50     17 keyword cleanup (Block $cl, /\s*;\s/? $br) :then(Statement* $st='1') {
14 1         4 qq{
15             local \$Filter::Cleanup::CLEANUP = Filter::Cleanup->new(sub $cl);
16             $st
17             };
18 14     14   788158 }
  14         29  
  14         24  
  14         22  
  14         18  
19 14         70 }
20              
21             sub new {
22 18     18 0 15651 my ($class, $code) = @_;
23 1         6 bless $code, $class;
  18         39  
24             }
25 1     1   30920  
26             sub DESTROY {
27 18     18   79 my $self = shift;
28 18 50       33 if (defined $self) {
29 0         0 $self->();
  0         0  
  0         0  
  0         0  
  0         0  
  18         31  
30 0         0 }
31             }
32              
33             1;
34 1         8  
35             __END__