File Coverage

blib/lib/MouseX/Foreign/Meta/Role/Method/Destructor.pm
Criterion Covered Total %
statement 11 11 100.0
branch 1 2 50.0
condition n/a
subroutine 4 4 100.0
pod n/a
total 16 17 94.1


line stmt bran cond sub pod time code
1             package MouseX::Foreign::Meta::Role::Method::Destructor;
2 4     4   5660 use Mouse::Role;
  4         9  
  4         34  
3              
4             around _generate_destructor => sub {
5             my($next, undef, $meta) = @_;
6              
7             my $foreign_superclass = $meta->foreign_superclass;
8              
9             my $super_destroy;
10             if(!$foreign_superclass->can('DEMOLISHALL')){
11             $super_destroy = $foreign_superclass->can('DESTROY');
12             }
13              
14             return sub {
15 6     6   7198 my($self) = @_;
        2      
16 6         53 $self->DEMOLISHALL();
17              
18 6 50       35 if(defined $super_destroy) {
19 6         28 $self->$super_destroy();
20             }
21 6         40 return;
22             };
23             };
24              
25 4     4   2038 no Mouse::Role;
  4         9  
  4         19  
26             1;
27             __END__