File Coverage

blib/lib/Object/Tap.pm
Criterion Covered Total %
statement 29 30 96.6
branch 5 6 83.3
condition 2 2 100.0
subroutine 7 7 100.0
pod n/a
total 43 45 95.5


line stmt bran cond sub pod time code
1 3     3   75962 use 5.006;
  3         9  
  3         104  
2 3     3   15 use strict;
  3         5  
  3         110  
3 3     3   15 use warnings;
  3         5  
  3         206  
4              
5             package Object::Tap;
6              
7             our $AUTHORITY = 'cpan:TOBYINK';
8             our $VERSION = '0.102';
9              
10 3     3   1967 use Role::Commons ();
  3         11  
  3         67  
11 3     3   1860 use Role::Commons::Tap ();
  3         10  
  3         423  
12              
13             sub import
14             {
15 6     6   913 shift;
16 6         40 my ($r, $opts) = Role::Commons::->parse_arguments(DummyArgument => @_);
17 0         0 my @packages = ref $opts->{package}
18 6 50 100     89 ? @{ $opts->{package} }
19             : ($opts->{package}|| scalar caller);
20            
21 6         17 delete $r->{DummyArgument};
22 6 100       24 $r = { tap => undef } unless keys %$r;
23            
24 6         13 for my $pkg (@packages)
25             {
26 6         15 for my $meth (keys %$r)
27             {
28 7 100       16 if ($meth eq 'tap')
29             {
30 4         27 Role::Commons::->import('Tap', -into => $pkg);
31             }
32             else
33             {
34 3     3   27 no strict 'refs';
  3         6  
  3         302  
35 3         5 *{"$pkg\::$meth"} = \&Role::Commons::Tap::tap;
  3         2152  
36             }
37             }
38             }
39             }
40              
41             1;
42