File Coverage

blib/lib/Aspect/Library/Trace.pm
Criterion Covered Total %
statement 26 32 81.2
branch 1 2 50.0
condition n/a
subroutine 9 11 81.8
pod 0 1 0.0
total 36 46 78.2


line stmt bran cond sub pod time code
1             package Aspect::Library::Trace;
2              
3 1     1   765 use 5.006;
  1         3  
  1         36  
4 1     1   4 use strict;
  1         2  
  1         34  
5 1     1   15 use warnings;
  1         2  
  1         36  
6 1     1   944 use Aspect 1.00 ();
  1         52691  
  1         27  
7 1     1   813 use Aspect::Modular ();
  1         2352  
  1         19  
8 1     1   8 use Aspect::Advice::Around ();
  1         2  
  1         21  
9              
10 1     1   6 use vars qw{$VERSION @ISA};
  1         2  
  1         64  
11             BEGIN {
12 1     1   2 $VERSION = '1.00';
13 1         232 @ISA = 'Aspect::Modular';
14             }
15              
16             sub import {
17 1     1   13 my $class = shift;
18              
19 1 50       6 if ( ref($_[0]) eq 'Regexp' ) {
20 0         0 Aspect::aspect( Trace => Aspect::call($_[0]) );
21             }
22              
23 1         12 return 1;
24             }
25              
26             sub get_advice {
27 0     0 0   my $depth = 0;
28             Aspect::Advice::Around->new(
29             lexical => $_[0]->lexical,
30             pointcut => $_[1],
31             code => sub {
32 0     0     print STDERR ' ' x $depth++ . $_[0]->sub_name . "\n";
33 0           $_[0]->proceed;
34 0           $depth--;
35             },
36 0           );
37             }
38              
39             1;
40              
41             __END__