File Coverage

blib/lib/HTML/Widgets/NavMenu/Tree/Iterator/Stack.pm
Criterion Covered Total %
statement 34 34 100.0
branch n/a
condition n/a
subroutine 11 11 100.0
pod 7 7 100.0
total 52 52 100.0


line stmt bran cond sub pod time code
1             package HTML::Widgets::NavMenu::Tree::Iterator::Stack;
2             $HTML::Widgets::NavMenu::Tree::Iterator::Stack::VERSION = '1.0901';
3 13     13   55894 use strict;
  13         28  
  13         306  
4 13     13   53 use warnings;
  13         26  
  13         493  
5              
6 13     13   446 use parent qw(HTML::Widgets::NavMenu::Object);
  13         259  
  13         48  
7              
8             __PACKAGE__->mk_acc_ref( [qw(_items)] );
9              
10             sub _init
11             {
12 341     341   528 my $self = shift;
13              
14 341         657 $self->_items( [] );
15              
16 341         541 return 0;
17             }
18              
19              
20             sub push
21             {
22 9     9 1 17 my $self = shift;
23 9         12 my $item = shift;
24              
25 9         13 push @{ $self->_items() }, $item;
  9         20  
26              
27 9         13 return 0;
28             }
29              
30              
31             sub len
32             {
33 105     105 1 912 my $self = shift;
34              
35 105         139 return scalar( @{ $self->_items() } );
  105         381  
36             }
37              
38              
39             sub top
40             {
41 5     5 1 10 my $self = shift;
42 5         19 return $self->_items->[-1];
43             }
44              
45              
46             sub item
47             {
48 4     4 1 7 my $self = shift;
49 4         6 my $index = shift;
50 4         17 return $self->_items->[$index];
51             }
52              
53              
54             sub pop
55             {
56 4     4 1 7 my $self = shift;
57 4         5 return pop( @{ $self->_items() } );
  4         9  
58             }
59              
60              
61             sub is_empty
62             {
63 4     4 1 5 my $self = shift;
64 4         8 return ( $self->len() == 0 );
65             }
66              
67              
68             sub reset
69             {
70 1     1 1 3 my $self = shift;
71              
72 1         2 $#{ $self->_items() } = -1;
  1         4  
73              
74 1         2 return 0;
75             }
76              
77              
78             1;
79              
80             __END__