File Coverage

lib/Pod/Simple/PullParserStartToken.pm
Criterion Covered Total %
statement 17 24 70.8
branch 3 8 37.5
condition 1 7 14.2
subroutine 8 10 80.0
pod 6 7 85.7
total 35 56 62.5


line stmt bran cond sub pod time code
1              
2             require 5;
3             package Pod::Simple::PullParserStartToken;
4 10     10   3981 use Pod::Simple::PullParserToken ();
  10         23  
  10         251  
5 10     10   52 use strict;
  10         20  
  10         9088  
6 10     10   68 use vars qw(@ISA $VERSION);
  10         23  
  10         3100  
7             @ISA = ('Pod::Simple::PullParserToken');
8             $VERSION = '3.42';
9              
10             sub new { # Class->new(tagname, optional_attrhash);
11 346     346 0 583 my $class = shift;
12 346   33     1551 return bless ['start', @_], ref($class) || $class;
13             }
14              
15             # Purely accessors:
16              
17 471 50   471 1 2440 sub tagname { (@_ == 2) ? ($_[0][1] = $_[1]) : $_[0][1] }
18 3     3 1 6 sub tag { shift->tagname(@_) }
19              
20 2     2 1 7 sub is_tagname { $_[0][1] eq $_[1] }
21 0     0 1 0 sub is_tag { shift->is_tagname(@_) }
22              
23              
24 0   0 0 1 0 sub attr_hash { $_[0][2] ||= {} }
25              
26             sub attr {
27 82 50   82 1 147 if(@_ == 2) { # Reading: $token->attr('attrname')
    0          
28 82 50       111 ${$_[0][2] || return undef}{ $_[1] };
  82         253  
29             } elsif(@_ > 2) { # Writing: $token->attr('attrname', 'newval')
30 0   0       ${$_[0][2] ||= {}}{ $_[1] } = $_[2];
  0            
31             } else {
32 0           require Carp;
33 0           Carp::croak(
34             'usage: $object->attr("val") or $object->attr("key", "newval")');
35 0           return undef;
36             }
37             }
38              
39             1;
40              
41              
42             __END__