File Coverage

blib/lib/Devel/Examine/Subs/Sub.pm
Criterion Covered Total %
statement 50 50 100.0
branch 17 18 94.4
condition 2 2 100.0
subroutine 12 13 92.3
pod 0 7 0.0
total 81 90 90.0


line stmt bran cond sub pod time code
1             package Devel::Examine::Subs::Sub;
2 57     57   33732 use 5.008;
  57         171  
3 57     57   260 use strict;
  57         93  
  57         1110  
4 57     57   279 use warnings;
  57         103  
  57         2299  
5              
6             our $VERSION = '1.61';
7              
8 57     57   273 use Data::Dumper;
  57         99  
  57         6540  
9              
10             BEGIN {
11              
12             # we need to do some trickery for DTS due to a circular install
13              
14 57     57   109 eval {
15 57         19746 require Devel::Trace::Subs;
16             };
17              
18 57         193 eval {
19 57         486 import Devel::Trace::Subs qw(trace);
20             };
21              
22 57 50       291 if (! defined &trace){
23 57     0   26150 *trace = sub {};
24             }
25             };
26              
27             sub new {
28            
29 269 100   269 0 113452 trace() if $ENV{TRACE};
30              
31 268         368 my $class = shift;
32 268         354 my $data = shift;
33 268         382 my $name = shift;
34              
35 268         490 my $self = bless {}, $class;
36              
37 268         526 $self->{data} = $data;
38 268   100     671 $self->{data}{name} = $name || '';
39              
40 268         645 return $self;
41             }
42             sub name {
43            
44 317 100   317 0 18772 trace() if $ENV{TRACE};
45            
46 316         396 my $self = shift;
47 316         775 return $self->{data}{name};
48             }
49             sub start {
50            
51 140 100   140 0 4307 trace() if $ENV{TRACE};
52            
53 139         180 my $self = shift;
54 139         400 return $self->{data}{start};
55             }
56             sub end {
57            
58 90 100   90 0 3989 trace() if $ENV{TRACE};
59            
60 89         138 my $self = shift;
61 89         267 return $self->{data}{end};
62             }
63             sub line_count {
64            
65 17 100   17 0 3815 trace() if $ENV{TRACE};
66            
67 16         33 my $self = shift;
68 16         76 return $self->{data}{num_lines};
69             }
70             sub lines {
71            
72 14 100   14 0 3958 trace() if $ENV{TRACE};
73              
74 13         28 my $self = shift;
75              
76 13         22 my @line_linenum;
77              
78 13 100       40 if ($self->{data}{lines_with}){
79 1         3 my $lines_with = $self->{data}{lines_with};
80            
81 1         3 for (@$lines_with){
82 1         14 for my $num (keys %$_){
83 1         8 push @line_linenum, "$num: $_->{$num}";
84             }
85             }
86             }
87              
88 13         62 return \@line_linenum;
89             }
90             sub code {
91            
92 13 100   13 0 3348 trace() if $ENV{TRACE};
93              
94 12         29 my $self = shift;
95              
96 12         19 my $code = $self->{data}{code};
97              
98 12         58 return $code;
99             }
100             1;