File Coverage

blib/lib/Heap/Simple/Object.pm
Criterion Covered Total %
statement 12 12 100.0
branch 6 6 100.0
condition 3 3 100.0
subroutine 5 5 100.0
pod 0 2 0.0
total 26 28 92.8


line stmt bran cond sub pod time code
1             package Heap::Simple::Object;
2             require Heap::Simple::Wrapper;
3             require Heap::Simple::Method;
4             @ISA = qw(Heap::Simple::Wrapper Heap::Simple::Method);
5             $VERSION = "0.03";
6 1     1   6 use strict;
  1         3  
  1         261  
7              
8             sub _REAL_KEY {
9 215     215   433 my $heap = shift;
10 215 100       1697 return defined $heap->[0]{index} ?
11             $heap->Heap::Simple::Method::_KEY(@_) :
12             qq(Carp::croak("Element type 'Object' without key method"));
13             }
14              
15             sub _REAL_ELEMENTS_PREPARE {
16 130     130   923 return shift->Heap::Simple::Method::_ELEMENTS_PREPARE(@_);
17             }
18              
19             sub key {
20 70     70 0 17842 my $heap = shift;
21 70 100       401 if ($heap->[0]{complex}) {
22 35         157 $heap->_make('sub key {
23             my $heap = shift;
24             _REAL_ELEMENTS_PREPARE()
25             return _REAL_KEY(shift)}');
26             } else {
27 35         153 $heap->_make('sub key {
28             return $_[1]->_LITERAL}');
29             }
30 70         49862 return $heap->key(@_);
31             }
32              
33             sub elements {
34 317 100 100 317 0 31810 return wantarray && exists $_[0][0]{index} ? (Object => shift->[0]{index}) : "Object" ;
35             }
36              
37             1;