File Coverage

blib/lib/Data/Dump/Streamer/_/Printers.pm
Criterion Covered Total %
statement 24 27 88.8
branch 2 2 100.0
condition 5 6 83.3
subroutine 8 10 80.0
pod n/a
total 39 45 86.6


line stmt bran cond sub pod time code
1             {
2             package Data::Dump::Streamer::_::StringPrinter;
3             #$Id: Printers.pm 26 2006-04-16 15:18:52Z demerphq $#
4             $VERSION= "0.1";
5             my %items;
6 339     339   4247 sub DESTROY { delete $items{$_[0]} }
7              
8             sub new {
9 339     339   681 my $class = shift;
10 339         569 my $self = bless \do { my $str = '' }, $class;
  339         1010  
11 339         1130 $self->print(@_);
12 339         1160 return $self;
13             }
14              
15             sub print {
16 9474     9474   15199 my $self = shift;
17 9474         31490 $items{$self} .= join "", @_;
18             }
19 339     339   1975 sub value { $items{$_[0]} }
20 0     0   0 sub string { $_[0]->value() }
21             1;
22             }
23              
24             {
25              
26             package Data::Dump::Streamer::_::ListPrinter;
27             $VERSION= "0.1";
28             my %items;
29 9     9   102 sub DESTROY { delete $items{$_[0]} }
30              
31             sub new {
32 9     9   19 my $class = shift;
33 9         16 my $self = bless \do { my $str = '' }, $class;
  9         29  
34 9         55 $items{$self} = [];
35 9         36 $self->print(@_);
36 9         34 return $self;
37             }
38              
39             sub print {
40 117     117   280 my $self = $items{shift (@_)};
41 117         260 my $str = join ( '', @_ );
42 117 100 100     574 if ( !@$self
      66        
43             or $self->[-1] =~ /\n/
44             or length( $self->[-1] ) > 4000 )
45             {
46 53         94 push @{$self}, $str;
  53         165  
47             } else {
48 64         197 $self->[-1] .= $str;
49             }
50             }
51 9     9   17 sub value { @{$items{$_[0]}} }
  9         61  
52 0     0     sub string { join ( '', @{$items{$_[0]}} ) }
  0            
53             1;
54             }
55              
56              
57             __END__