File Coverage

blib/lib/XML/SAX/Manifold.pm
Criterion Covered Total %
statement 17 17 100.0
branch 2 4 50.0
condition 3 6 50.0
subroutine 4 4 100.0
pod 1 1 100.0
total 27 32 84.3


line stmt bran cond sub pod time code
1             package XML::SAX::Manifold;
2             {
3             $XML::SAX::Manifold::VERSION = '0.46';
4             }
5             # ABSTRACT: Multipass processing of documents
6              
7              
8 3     3   16 use base qw( XML::SAX::Machine );
  3         4  
  3         230  
9              
10 3     3   14 use strict;
  3         6  
  3         73  
11 3     3   12 use Carp;
  3         12  
  3         1128  
12              
13              
14             sub new {
15 3     3 1 7 my $proto = shift;
16 3   33     19 my $class = ref $proto || $proto;
17 3 50 66     32 my @options_hash_if_present = @_ && ref $_[-1] eq "HASH" ? pop : () ;
18              
19 3         6 my $channel_num = 0;
20              
21 3         51 my $self = $proto->SUPER::new(
22             [ Intake => "XML::Filter::Distributor", (1..$#_+1) ],
23             map( [ "Channel_" . $channel_num++ => $_ => qw( Merger ) ], @_ ),
24             [ Merger => "XML::Filter::Merger" => qw( Exhaust ) ],
25             @options_hash_if_present
26             );
27              
28 3         32 my $distributor = $self->find_part( 0 );
29 3 50       41 $distributor->set_aggregator( $self->find_part( -1 ) )
30             if $distributor->can( "set_aggregator" );
31              
32 3         53 return $self;
33             }
34              
35              
36             1;
37              
38             __END__