File Coverage

blib/lib/Ark/Plugin.pm
Criterion Covered Total %
statement 22 29 75.8
branch 0 2 0.0
condition n/a
subroutine 6 10 60.0
pod n/a
total 28 41 68.2


line stmt bran cond sub pod time code
1             package Ark::Plugin;
2 59     143   102586 use Mouse::Role;
  59         33202  
  59         593  
3 59     59   20868 use Mouse::Exporter;
  59         121  
  59         429  
4              
5             do {
6             my %EXPORTS;
7              
8             sub import {
9 98     98   306 my ($class, $context) = @_;
10              
11 98         1125 require utf8; utf8->import;
  98         573  
12              
13 98         545 my $caller = caller;
14 98         502 Mouse::Meta::Role->initialize($caller);
15              
16 98         3056 my ($import, $unimport) = Mouse::Exporter->build_import_methods(
17             exporting_package => $caller,
18             also => "Mouse::Role",
19             );
20 98         27131 $EXPORTS{$caller} = $unimport;
21              
22 98         536 $caller->$import({ into => $caller });
23              
24 59     59   9157 no strict 'refs';
  59         160  
  59         13142  
25 98     138   23160 *{ $caller . '::plugin_context' } = sub { $context };
  98     138   615  
  138         548  
26 98         16319 *{ $caller . '::method' } = sub {
27 0     0     my ($self, $method) = @_;
        0      
28 0           my $caller = caller;
29 0 0         my $sub = $caller->can($method) or die qq/No such method "$method" on $caller/;
30              
31 0     0     return sub { $sub->($self, @_) };
  0            
32 98         434 };
33             }
34              
35             sub unimport {
36 0     0     goto \&{ $EXPORTS{ scalar caller } };
  0            
37             }
38             };
39              
40             1;