File Coverage

blib/lib/CPAN/Mirror/Tiny/Tempdir.pm
Criterion Covered Total %
statement 17 41 41.4
branch n/a
condition n/a
subroutine 6 10 60.0
pod 0 3 0.0
total 23 54 42.5


line stmt bran cond sub pod time code
1             package CPAN::Mirror::Tiny::Tempdir;
2 1     1   10 use v5.24;
  1         3  
3 1     1   3 use warnings;
  1         1  
  1         75  
4 1     1   4 use experimental qw(lexical_subs signatures);
  1         1  
  1         5  
5 1     1   137 use File::Temp ();
  1         2  
  1         8  
6 1     1   3 use File::Path ();
  1         1  
  1         13  
7 1     1   377 use File::pushd ();
  1         985  
  1         196  
8              
9 0     0 0   sub as_string ($self) { $self->{tempdir} }
  0            
  0            
  0            
10              
11 0     0 0   sub new ($class, $base) {
  0            
  0            
  0            
12 0           my $tempdir = File::Temp::tempdir(CLEANUP => 0, DIR => $base);
13 0           bless { tempdir => $tempdir }, $class;
14             }
15              
16 0     0 0   sub pushd ($class, $base) {
  0            
  0            
  0            
17 0           my $self = $class->new($base);
18 0           $self->{guard} = File::pushd::pushd($self->as_string);
19 0           $self;
20             }
21              
22 0     0     sub DESTROY ($self) {
  0            
  0            
23 0           undef $self->{guard};
24 0           local ($@, $!);
25 0           eval { File::Path::rmtree($self->{tempdir}) };
  0            
26             }
27              
28              
29             1;