File Coverage

blib/lib/OPTIMADE/Filter/Modifiable.pm
Criterion Covered Total %
statement 14 16 87.5
branch 3 4 75.0
condition 3 3 100.0
subroutine 4 4 100.0
pod 0 1 0.0
total 24 28 85.7


line stmt bran cond sub pod time code
1             package OPTIMADE::Filter::Modifiable;
2              
3 7     7   107405 use strict;
  7         15  
  7         264  
4 7     7   37 use warnings;
  7         12  
  7         422  
5              
6 7     7   40 use Scalar::Util qw(blessed);
  7         13  
  7         3235  
7              
8             our $VERSION = '0.11.0'; # VERSION
9              
10             sub modify
11             {
12 29     29 0 2325 my $node = shift;
13 29         50 my $code = shift;
14              
15 29 100 100     1063 if( blessed $node &&
    50          
16             $node->isa( OPTIMADE::Filter::Modifiable:: ) ) {
17 12         66 return $node->modify( $code, @_ );
18             } elsif( ref $node eq 'ARRAY' ) {
19 0         0 return [ map { modify( $_, $code, @_ ) } @$node ];
  0         0  
20             } else {
21 17         40 return $code->( $node, @_ );
22             }
23             }
24              
25             1;