File Coverage

blib/lib/Devel/Spy/TieArray.pm
Criterion Covered Total %
statement 30 46 65.2
branch 3 18 16.6
condition n/a
subroutine 10 15 66.6
pod n/a
total 43 79 54.4


line stmt bran cond sub pod time code
1             package Devel::Spy::TieArray;
2 1     1   7 use strict;
  1         1  
  1         34  
3 1     1   5 use warnings;
  1         3  
  1         30  
4 1     1   5 use constant SELF => 0;
  1         2  
  1         51  
5 1     1   6 use constant IX => 1;
  1         2  
  1         46  
6 1     1   6 use constant COUNT => 1;
  1         2  
  1         42  
7 1     1   6 use constant VALUE => 2;
  1         1  
  1         56  
8              
9 1     1   6 use constant PAYLOAD => 0;
  1         8  
  1         45  
10 1     1   5 use constant CODE => 1;
  1         2  
  1         775  
11              
12             sub TIEARRAY {
13 1     1   4 my ( undef, @array ) = @_;
14 1         5 return bless \ @array, $_[SELF];
15             }
16              
17             sub FETCH {
18 0 0   0   0 my $followup = $_[SELF][CODE]->(' ->['.(defined $_[IX] ? $_[IX] : 'undef').']');
19 0 0       0 my $ix = defined $_[IX] ? $_[IX] : 0;
20 0         0 my $value = $_[SELF][PAYLOAD][$ix];
21 0 0       0 $followup = $followup->(' ->'.(defined $value ? $value : 'undef'));
22 0         0 return Devel::Spy->new( $value, $followup );
23             }
24              
25             sub STORE {
26 1 50   1   12 my $followup = $_[SELF][CODE]->(' ->['.(defined $_[IX] ? $_[IX] : 'undef').'] = '.(defined $_[VALUE] ? $_[VALUE] : 'undef'));
    50          
27 1 50       11 my $ix = defined $_[IX] ? $_[IX] : 0;
28 1         4 $_[SELF][PAYLOAD]->[$ix] = $_[VALUE];
29 1         5 return Devel::Spy->new( $_[VALUE], $followup );
30             }
31              
32             sub FETCHSIZE {
33 0     0     my $followup = $_[SELF][CODE]->(' scalar(@...)');
34 0           my $value = @{ $_[SELF][PAYLOAD] };
  0            
35 0 0         $followup = $_[SELF][CODE]->(' ->'.(defined $value ? $value : 'undef'));
36 0           return Devel::Spy->new( $value, $followup );
37             }
38              
39             sub STORESIZE {
40 0 0   0     $_[SELF][CODE]->(' $#... = ' . (defined $_[COUNT] ? $_[COUNT] : 'undef' ));
41 0 0         $#{ $_[SELF][PAYLOAD] } = defined $_[COUNT] ? 1 + $_[COUNT] : 0;
  0            
42 0           return;
43             }
44              
45             # sub EXTEND {
46             # my ( $self, $count ) = @_;
47             #
48             # }
49             #
50             # sub EXISTS {
51             #
52             # }
53             #
54             # sub DELETE { }
55             #
56             # sub CLEAR { }
57             #
58             # sub PUSH { }
59             #
60             # sub POP { }
61             #
62             # sub SHIFT { }
63             # sub UNSHIFT { }
64             # sub SPLICE { }
65              
66 0     0     sub UNTIE {}
67 0     0     sub DESTROY {}
68              
69             1;
70              
71             __END__