File Coverage

blib/lib/Evo/Export.pm
Criterion Covered Total %
statement 124 124 100.0
branch 32 58 55.1
condition n/a
subroutine 29 29 100.0
pod 5 9 55.5
total 190 220 86.3


line stmt bran cond sub pod time code
1             package Evo::Export;
2 55     73   24174 use Evo '::Meta';
  55         120  
  55         398  
3              
4              
5             my $META = Evo::Export::Meta->find_or_bind_to(__PACKAGE__);
6              
7 124 50   124 0 498 sub install_in ($me, $dest, $from, @list) {
  124         262  
  124         248  
  124         255  
  124         434  
  124         250  
8 124         706 Evo::Export::Meta->find_or_bind_to($from)->install($dest, @list);
9             }
10              
11 578 50   578 0 1637 sub Export ($pkg, $code, $name, $as = $name) : Attr {
  578 50       1509  
  578 100       1008  
  578         937  
  578         886  
  578         1356  
  578         888  
12 578 50       1388 $name or (undef, $name) = Evo::Lib::Bare::code2names($code);
13 578         2146 Evo::Export::Meta->find_or_bind_to($pkg)->export_code($as, $code);
14 55     55   25653 }
  55         50447  
  55         422  
15              
16 540 50   540 0 1485 sub ExportGen ($pkg, $gen, $name, $as = $name) : Attr {
  540 50       1327  
  540 100       962  
  540         833  
  540         872  
  540         1204  
  540         786  
17 540 50       1258 $name or (undef, $name) = Evo::Lib::Bare::code2names($gen);
18 540         1997 Evo::Export::Meta->find_or_bind_to($pkg)->export_gen($as, $gen);
19 55     55   12705 }
  55         160  
  55         222  
20              
21 266 50   266   1230 sub import ($self, @list) {
  266         609  
  266         1365  
  266         520  
22 266         627 my $dest = scalar caller;
23 266         1702 Evo::Export::Meta->find_or_bind_to($dest);
24 266 100       979 @list = ('*') unless @list;
25 266         832 Evo::Export::Meta->find_or_bind_to($self)->install($dest, @list);
26             }
27              
28 203 50   203   3381 sub _import ($self, @list) : Export(import) {
  203         508  
  203         787  
  203         452  
29 203         487 my $dest = scalar caller;
30 203         769 Evo::Export::Meta->find_or_bind_to($self)->install($dest, @list);
31 55     55   13416 }
  55         118  
  55         213  
32              
33              
34 223 50   223 1 691 sub EXPORT ($me, $dest) : ExportGen {
  223 50       697  
  223         435  
  223         398  
  223         376  
35             sub {
36 4     4   715 Evo::Export::Meta->find_or_bind_to($dest);
        87      
        63      
37 223         1494 };
38 55     55   9601 }
  55         125  
  55         217  
39              
40 1 50   1 0 5 sub import_all ($exporter, @list) : Export {
  1         3  
  1         3  
  1         3  
41 1 50       4 @list = ('*') unless @list;
42 1         6 Evo::Export::Meta->find_or_bind_to($exporter)->install(scalar caller, @list);
43 55     55   8945 }
  55         124  
  55         277  
44              
45 223 50   223 1 691 sub export_gen ($me, $dst) : ExportGen {
  223 50       651  
  223         412  
  223         452  
  223         356  
46 2 50   2   20 sub ($name, $gen) {
  2 50       6  
  2         5  
  2         4  
  2         2  
47 2         12 Evo::Export::Meta->find_or_bind_to($dst)->export_gen($name, $gen);
48 223         1516 };
49 55     55   10658 }
  55         116  
  55         231  
50              
51 223 50   223 1 721 sub export_code ($me, $dst) : ExportGen {
  223 50       620  
  223         459  
  223         403  
  223         390  
52 1 50   1   10 sub ($name, $fn) {
  1 50       4  
  1         3  
  1         2  
  1         2  
53 1         3 Evo::Export::Meta->find_or_bind_to($dst)->export_code($name, $fn);
54 223         1518 };
55 55     55   10215 }
  55         119  
  55         280  
56              
57 223 50   223 1 688 sub export ($me, $dst) : ExportGen {
  223 50       643  
  223         409  
  223         396  
  223         371  
58 136     136   867 sub { Evo::Export::Meta->find_or_bind_to($dst)->export($_) for @_ }
59 55     55   9627 }
  55         133  
  55         219  
  223         1391  
60              
61 260 50   260 1 770 sub export_proxy ($me, $dst) : ExportGen {
  260 50       677  
  260         530  
  260         445  
  260         419  
62 99 50   99   463 sub ($origpkg, @list) {
  99     37   261  
  99         494  
  99         245  
63 99         474 Evo::Export::Meta->find_or_bind_to($dst)->export_proxy($origpkg, @list);
64 260         1843 };
65 55     55   10477 }
  55         120  
  55         210  
66              
67              
68             1;
69              
70             __END__