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 # hide from PAUSE
3             Data::Dump::Streamer::_::StringPrinter;
4             $VERSION= "0.1";
5             my %items;
6 344     344   4680 sub DESTROY { delete $items{ $_[0] } }
7              
8             sub new {
9 344     344   643 my $class= shift;
10 344         551 my $self= bless \do { my $str= '' }, $class;
  344         960  
11 344         1108 $self->print(@_);
12 344         1178 return $self;
13             }
14              
15             sub print {
16 9494     9494   14856 my $self= shift;
17 9494         31686 $items{$self} .= join "", @_;
18             }
19 344     344   1934 sub value { $items{ $_[0] } }
20 0     0   0 sub string { $_[0]->value() }
21             1;
22             }
23              
24             {
25              
26             package # Hide from PAUSE
27             Data::Dump::Streamer::_::ListPrinter;
28             $VERSION= "0.1";
29             my %items;
30 9     9   108 sub DESTROY { delete $items{ $_[0] } }
31              
32             sub new {
33 9     9   20 my $class= shift;
34 9         15 my $self= bless \do { my $str= '' }, $class;
  9         35  
35 9         72 $items{$self}= [];
36 9         36 $self->print(@_);
37 9         35 return $self;
38             }
39              
40             sub print {
41 117     117   276 my $self= $items{ shift(@_) };
42 117         258 my $str= join('', @_);
43 117 100 100     582 if ( !@$self
      66        
44             or $self->[-1] =~ /\n/
45             or length($self->[-1]) > 4000)
46             {
47 53         89 push @{$self}, $str;
  53         173  
48             }
49             else {
50 64         193 $self->[-1] .= $str;
51             }
52             }
53 9     9   16 sub value { @{ $items{ $_[0] } } }
  9         71  
54 0     0     sub string { join('', @{ $items{ $_[0] } }) }
  0            
55             1;
56             }
57              
58             __END__