File Coverage

blib/lib/P5NCI/Declare.pm
Criterion Covered Total %
statement 24 25 96.0
branch n/a
condition n/a
subroutine 8 8 100.0
pod 0 1 0.0
total 32 34 94.1


line stmt bran cond sub pod time code
1             package P5NCI::Declare;
2              
3 1     1   54464 use strict;
  1         2  
  1         36  
4 1     1   32 use warnings;
  1         1  
  1         27  
5              
6 1     1   9 use vars '$VERSION';
  1         2  
  1         53  
7             $VERSION = '0.31';
8              
9 1     1   441 use P5NCI::Library;
  1         2  
  1         30  
10              
11 1     1   1171 use Attribute::Handlers autotie => { '__CALLER__::NCI' => __PACKAGE__ };
  1         5776  
  1         10  
12              
13             my %libs;
14              
15             sub import
16             {
17 1     1   9 my $class = shift;
18 1         7 $libs{ caller() } = P5NCI::Library->new( @_ );
19             }
20              
21             sub UNIVERSAL::NCI :ATTR
22             {
23 1     1 0 1574 my ($package, $symbol, $referent, $attr, $data) = @_;
24              
25 1         3 my $lib = $libs{$package};
26 1         2 my ($name, $sig) = @$data;
27 1         4 my $function = $lib->load_function( $name, $sig );
28 0         0 *$symbol = $function;
29 1     1   2043 }
  1         3  
  1         6  
30              
31             1;
32             __END__