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   11447 use strict;
  19         37  
  19         577  
4 19     19   88 use warnings;
  19         32  
  19         509  
5 19     19   88 use base qw(Exporter);
  19         31  
  19         7669  
6             our @EXPORT = qw(pad pad_human);
7              
8             our $VERSION = '0.64'; # VERSION
9              
10             # find the pad
11             sub pad {
12 31     31 0 15679 my($self) = @_;
13 31         194 my $response = $self->talk({ command => "pad" });
14 31         271 return $response->{pad};
15             }
16              
17             # human-readable pad
18             sub pad_human {
19 9     9 0 1713 my($self) = @_;
20 9         33 my $pad = $self->pad;
21 9         43 foreach my $var (keys %$pad) {
22 36 100       135 if ($var =~ /^@/) {
    100          
23 9         13 my @values = @{$pad->{$var}};
  9         22  
24 9         27 my $value = $self->stack_trace_human_args(@values);
25 9         24 $pad->{$var} = $value;
26             } elsif ($var =~ /^%/) {
27 9         21 $pad->{$var} = '(...)';
28             } else {
29 18         28 my $value = $pad->{$var};
30 18         54 $value = $self->stack_trace_human_args($value);
31 18         67 $value =~ s/^\(//;
32 18         58 $value =~ s/\)$//;
33 18         50 $pad->{$var} = $value;
34             }
35             }
36 9         29 return $pad;
37             }
38              
39             1;
40              
41             __END__