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 58     58   20428 use 5.008;
  58         115  
3 58     58   174 use strict;
  58         56  
  58         920  
4 58     58   170 use warnings;
  58         68  
  58         2000  
5              
6             our $VERSION = '1.69';
7              
8 58     58   196 use Data::Dumper;
  58         57  
  58         5356  
9              
10             BEGIN {
11              
12             # we need to do some trickery for DTS due to a circular install
13              
14 58     58   79 eval {
15 58         9720 require Devel::Trace::Subs;
16             };
17              
18 58         141 eval {
19 58         374 import Devel::Trace::Subs qw(trace);
20             };
21              
22 58 50       228 if (! defined &trace){
23 58     0   17517 *trace = sub {};
24             }
25             };
26              
27             sub new {
28            
29 278 100   278 0 61528 trace() if $ENV{TRACE};
30              
31 277         205 my $class = shift;
32 277         182 my $data = shift;
33 277         196 my $name = shift;
34              
35 277         261 my $self = bless {}, $class;
36              
37 277         286 $self->{data} = $data;
38 277   100     419 $self->{data}{name} = $name || '';
39              
40 277         395 return $self;
41             }
42             sub name {
43            
44 107 100   107 0 10726 trace() if $ENV{TRACE};
45            
46 106         87 my $self = shift;
47 106         191 return $self->{data}{name};
48             }
49             sub start {
50            
51 124 100   124 0 3602 trace() if $ENV{TRACE};
52            
53 123         154 my $self = shift;
54 123         227 return $self->{data}{start};
55             }
56             sub end {
57            
58 72 100   72 0 3458 trace() if $ENV{TRACE};
59            
60 71         69 my $self = shift;
61 71         157 return $self->{data}{end};
62             }
63             sub line_count {
64            
65 17 100   17 0 3406 trace() if $ENV{TRACE};
66            
67 16         23 my $self = shift;
68 16         61 return $self->{data}{num_lines};
69             }
70             sub lines {
71            
72 14 100   14 0 3364 trace() if $ENV{TRACE};
73              
74 13         22 my $self = shift;
75              
76 13         14 my @line_linenum;
77              
78 13 100       30 if ($self->{data}{lines_with}){
79 1         1 my $lines_with = $self->{data}{lines_with};
80            
81 1         2 for (@$lines_with){
82 1         12 for my $num (keys %$_){
83 1         4 push @line_linenum, "$num: $_->{$num}";
84             }
85             }
86             }
87              
88 13         52 return \@line_linenum;
89             }
90             sub code {
91            
92 13 100   13 0 3090 trace() if $ENV{TRACE};
93              
94 12         17 my $self = shift;
95              
96 12         14 my $code = $self->{data}{code};
97              
98 12         49 return $code;
99             }
100             1;