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 58     138   35294 use Mouse::Role;
  58         39805  
  58         768  
3 58     58   19117 use Mouse::Exporter;
  58         133  
  58         457  
4              
5             do {
6             my %EXPORTS;
7              
8             sub import {
9 94     94   245 my ($class, $context) = @_;
10              
11 94         1565 require utf8; utf8->import;
  94         698  
12              
13 94         454 my $caller = caller;
14 94         532 Mouse::Meta::Role->initialize($caller);
15              
16 94         2833 my ($import, $unimport) = Mouse::Exporter->build_import_methods(
17             exporting_package => $caller,
18             also => "Mouse::Role",
19             );
20 94         19420 $EXPORTS{$caller} = $unimport;
21              
22 94         518 $caller->$import({ into => $caller });
23              
24 58     58   8495 no strict 'refs';
  58         127  
  58         12315  
25 94     134   17739 *{ $caller . '::plugin_context' } = sub { $context };
  94     134   605  
  134         653  
26 94         14437 *{ $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 94         421 };
33             }
34              
35             sub unimport {
36 0     0     goto \&{ $EXPORTS{ scalar caller } };
  0            
37             }
38             };
39              
40             1;