File Coverage

blib/lib/Sub/HandlesVia/HandlerLibrary.pm
Criterion Covered Total %
statement 28 29 96.5
branch 2 4 50.0
condition 6 12 50.0
subroutine 10 10 100.0
pod 0 3 0.0
total 46 58 79.3


line stmt bran cond sub pod time code
1 93     93   1641 use 5.008;
  93         365  
2 93     93   544 use strict;
  93         212  
  93         2296  
3 93     93   531 use warnings;
  93         214  
  93         6609  
4              
5              
6             our $AUTHORITY = 'cpan:TOBYINK';
7             our $VERSION = '0.045';
8              
9             use Types::Standard qw( Any Item );
10 93     93   2070  
  93         226321  
  93         942  
11             my ($me, $type) = @_;
12             if (!$type or $type == Any or $type == Item) {
13 568     568   1410 return {
14 568 50 33     1827 trust_mutated => 'always',
      33        
15             };
16 0         0 }
17            
18             return { trust_mutated => 'never' };
19             }
20 568         628742  
21             {
22             my %cache;
23            
24             my ($me, $handler_name) = @_;
25             $cache{$me} ||= $me->_populate_cache;
26             $cache{$me}{$handler_name} ? $me->$handler_name : undef;
27 4215     4215 0 8374 }
28 4215   66     9905
29 4215 50       27288 my ($me, $handler_name) = @_;
30             $cache{$me} ||= $me->_populate_cache;
31             exists $cache{$me}{$handler_name};
32             }
33 4215     4215 0 10983 }
34 4215   66     12027  
35 4215         20977 # This is not necessarily an exhaustive list, however if it is non-exhaustive
36             # then subclasses must override get_handler and has_handler.
37             #
38             no strict 'refs';
39             @{ $_[0] . '::METHODS' }
40             }
41              
42             my %hash;
43 93     93   184385 $hash{$_} = 1 for $_[0]->handler_names;
  93         263  
  93         11425  
44 96     96 0 223 \%hash;
  96         2374  
45             }
46              
47             1;