File Coverage

blib/lib/Class/XSDestructor.pm
Criterion Covered Total %
statement 21 25 84.0
branch 2 4 50.0
condition 3 8 37.5
subroutine 6 7 85.7
pod n/a
total 32 44 72.7


line stmt bran cond sub pod time code
1 1     1   585 use 5.008008;
  1         4  
2 1     1   5 use strict;
  1         2  
  1         23  
3 1     1   4 use warnings;
  1         2  
  1         59  
4 1     1   5 use Class::XSConstructor ();
  1         2  
  1         179  
5              
6             package Class::XSDestructor;
7              
8             our $AUTHORITY = 'cpan:TOBYINK';
9             our $VERSION = '0.023006';
10              
11             sub import {
12 0     1   0 my $class = shift;
13 1         8 my ( $package, $methodname );
14 1 50       2 if ( 'ARRAY' eq ref $_[0] ) {
15 1         5 ( $package, $methodname ) = @{+shift};
  0         0  
16             }
17 0   33     0 $package ||= our($SETUP_FOR) || caller;
      33        
18 1   50     11 $methodname ||= 'DESTROY';
19            
20 1         5 my @XS_args = (
21             "$package\::$methodname",
22             "$package\::DEMOLISHALL",
23             "$package\::XSCON_CLEAR_DESTRUCTOR_CACHE",
24             );
25            
26 1 50       15 if (our $REDEFINE) {
27 1     1   6 no warnings 'redefine';
  1     0   1  
  1         113  
28 1         4 Class::XSConstructor::install_destructor( @XS_args );
29             }
30             else {
31 0         0 Class::XSConstructor::install_destructor( @XS_args );
32             }
33             }
34              
35             1;
36              
37             __END__