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   21285 use 5.008;
  57         126  
3 57     57   190 use strict;
  57         55  
  57         972  
4 57     57   183 use warnings;
  57         63  
  57         2041  
5              
6             our $VERSION = '1.68';
7              
8 57     57   190 use Data::Dumper;
  57         60  
  57         5126  
9              
10             BEGIN {
11              
12             # we need to do some trickery for DTS due to a circular install
13              
14 57     57   80 eval {
15 57         9537 require Devel::Trace::Subs;
16             };
17              
18 57         184 eval {
19 57         377 import Devel::Trace::Subs qw(trace);
20             };
21              
22 57 50       284 if (! defined &trace){
23 57     0   18642 *trace = sub {};
24             }
25             };
26              
27             sub new {
28            
29 276 100   276 0 91116 trace() if $ENV{TRACE};
30              
31 275         210 my $class = shift;
32 275         196 my $data = shift;
33 275         209 my $name = shift;
34              
35 275         258 my $self = bless {}, $class;
36              
37 275         288 $self->{data} = $data;
38 275   100     398 $self->{data}{name} = $name || '';
39              
40 275         355 return $self;
41             }
42             sub name {
43            
44 107 100   107 0 10712 trace() if $ENV{TRACE};
45            
46 106         88 my $self = shift;
47 106         193 return $self->{data}{name};
48             }
49             sub start {
50            
51 114 100   114 0 3830 trace() if $ENV{TRACE};
52            
53 113         138 my $self = shift;
54 113         209 return $self->{data}{start};
55             }
56             sub end {
57            
58 72 100   72 0 3711 trace() if $ENV{TRACE};
59            
60 71         63 my $self = shift;
61 71         134 return $self->{data}{end};
62             }
63             sub line_count {
64            
65 17 100   17 0 3888 trace() if $ENV{TRACE};
66            
67 16         22 my $self = shift;
68 16         60 return $self->{data}{num_lines};
69             }
70             sub lines {
71            
72 14 100   14 0 3699 trace() if $ENV{TRACE};
73              
74 13         28 my $self = shift;
75              
76 13         15 my @line_linenum;
77              
78 13 100       31 if ($self->{data}{lines_with}){
79 1         3 my $lines_with = $self->{data}{lines_with};
80            
81 1         2 for (@$lines_with){
82 1         15 for my $num (keys %$_){
83 1         4 push @line_linenum, "$num: $_->{$num}";
84             }
85             }
86             }
87              
88 13         54 return \@line_linenum;
89             }
90             sub code {
91            
92 13 100   13 0 3281 trace() if $ENV{TRACE};
93              
94 12         19 my $self = shift;
95              
96 12         15 my $code = $self->{data}{code};
97              
98 12         44 return $code;
99             }
100             1;