File Coverage

lib/Devel/ebug/Plugin/Pad.pm
Criterion Covered Total %
statement 27 27 100.0
branch 4 4 100.0
condition n/a
subroutine 5 5 100.0
pod 0 2 0.0
total 36 38 94.7


line stmt bran cond sub pod time code
1             package Devel::ebug::Plugin::Pad;
2              
3 19     19   10063 use strict;
  19         33  
  19         524  
4 19     19   83 use warnings;
  19         30  
  19         466  
5 19     19   86 use base qw(Exporter);
  19         32  
  19         7104  
6             our @EXPORT = qw(pad pad_human);
7              
8             our $VERSION = '0.62_01'; # TRIAL VERSION
9             $VERSION = eval $VERSION; ## no critic (BuiltinFunctions::ProhibitStringyEval)
10              
11             # find the pad
12             sub pad {
13 31     31 0 11418 my($self) = @_;
14 31         182 my $response = $self->talk({ command => "pad" });
15 31         210 return $response->{pad};
16             }
17              
18             # human-readable pad
19             sub pad_human {
20 9     9 0 1696 my($self) = @_;
21 9         42 my $pad = $self->pad;
22 9         59 foreach my $var (keys %$pad) {
23 36 100       124 if ($var =~ /^@/) {
    100          
24 9         15 my @values = @{$pad->{$var}};
  9         22  
25 9         31 my $value = $self->stack_trace_human_args(@values);
26 9         27 $pad->{$var} = $value;
27             } elsif ($var =~ /^%/) {
28 9         21 $pad->{$var} = '(...)';
29             } else {
30 18         40 my $value = $pad->{$var};
31 18         65 $value = $self->stack_trace_human_args($value);
32 18         65 $value =~ s/^\(//;
33 18         58 $value =~ s/\)$//;
34 18         47 $pad->{$var} = $value;
35             }
36             }
37 9         33 return $pad;
38             }
39              
40             1;
41              
42             __END__