File Coverage

blib/lib/XML/SAX/Pipeline.pm
Criterion Covered Total %
statement 19 19 100.0
branch 6 6 100.0
condition 3 3 100.0
subroutine 4 4 100.0
pod 1 1 100.0
total 33 33 100.0


line stmt bran cond sub pod time code
1             package XML::SAX::Pipeline;
2             {
3             $XML::SAX::Pipeline::VERSION = '0.46';
4             }
5             # ABSTRACT: Manage a linear pipeline of SAX processors
6              
7              
8 5     5   26 use base qw( XML::SAX::Machine );
  5         9  
  5         2543  
9              
10              
11 5     5   37 use strict;
  5         11  
  5         162  
12 5     5   30 use Carp;
  5         13  
  5         2392  
13              
14              
15             sub new {
16 9     9 1 19 my $proto = shift;
17 9 100 100     73 my $options = @_ && ref $_[-1] eq "HASH" ? pop : {};
18              
19 9         14 my $stage_number = 0;
20 9         56 my @machine_spec = map [ "Stage_" . $stage_number++, $_ ], @_;
21 9         39 push @{$machine_spec[$_]}, $_ + 1 for 0..$#machine_spec-1 ;
  7         27  
22 9 100       38 $machine_spec[0]->[0] = "Intake" if @machine_spec;
23 9 100       40 push @{$machine_spec[-1]}, "Exhaust" if @machine_spec;
  8         19  
24              
25 9         71 return $proto->SUPER::new( @machine_spec, $options );
26             }
27              
28              
29             1;
30              
31             __END__