File Coverage

blib/lib/Exodist/Util/Alias.pm
Criterion Covered Total %
statement 24 24 100.0
branch 2 4 50.0
condition n/a
subroutine 8 8 100.0
pod n/a
total 34 36 94.4


line stmt bran cond sub pod time code
1             package Exodist::Util::Alias;
2 2     2   62031 use strict;
  2         5  
  2         77  
3 2     2   12 use warnings;
  2         4  
  2         58  
4              
5 2     2   1944 use Exporter::Declare::Magic;
  2         128548  
  2         17  
6 2     2   15823 use Exodist::Util::Package qw/ inject_sub /;
  2         6  
  2         12  
7              
8             gen_default_export(
9             qw/alias begin/,
10             sub {
11             my ( $exporting_class, $importing_class ) = @_;
12             sub {
13 4     4   656 for my $package (@_) {
14 6 50       372 eval "require $package; 1" || die $@;
15 6         18 my $short = $package;
16 6         33 $short =~ s/.*:([^:]+)$/$1/g;
17 6     6   41 inject_sub( $importing_class, $short, sub { $package } );
  6         4432  
18             }
19             };
20             }
21             );
22              
23             gen_default_export(
24             qw/alias_to begin/,
25             sub {
26             my ( $exporting_class, $importing_class ) = @_;
27             sub {
28 4     4   18 my %pairs = @_;
29 4         14 for my $short ( keys %pairs ) {
30 6         14 my $package = $pairs{$short};
31 6 50       391 eval "require $package; 1" || die $@;
32 6     6   42 inject_sub( $importing_class, $short, sub { $package } );
  6         25  
33             }
34             }
35             }
36             );
37              
38             1;
39              
40             __END__