File Coverage

blib/lib/YAML/PP/Writer.pm
Criterion Covered Total %
statement 17 17 100.0
branch 2 2 100.0
condition n/a
subroutine 8 8 100.0
pod 6 6 100.0
total 33 33 100.0


line stmt bran cond sub pod time code
1             # ABSTRACT: Writer class for YAML::PP representing output data
2 47     47   152953 use strict;
  47         185  
  47         1487  
3 47     47   163 use warnings;
  47         73  
  47         11450  
4             package YAML::PP::Writer;
5              
6             our $VERSION = 'v0.39.0'; # VERSION
7              
8 3024     3024 1 5637 sub output { return $_[0]->{output} }
9 6791     6791 1 12126 sub set_output { $_[0]->{output} = $_[1] }
10              
11             sub new {
12 5119     5119 1 204141 my ($class, %args) = @_;
13 5119         6991 my $output = delete $args{output};
14 5119 100       9035 $output = '' unless defined $output;
15 5119         16743 return bless {
16             output => $output,
17             }, $class;
18             }
19              
20             sub write {
21 12780     12780 1 16573 my ($self, $line) = @_;
22 12780         28620 $self->{output} .= $line;
23             }
24              
25             sub init {
26 5212     5212 1 9646 $_[0]->set_output('');
27             }
28              
29             sub finish {
30 1579     1579 1 2170 my ($self) = @_;
31 1579         2693 $_[0]->set_output(undef);
32             }
33              
34             1;
35              
36             __END__
37              
38             =pod
39              
40             =encoding utf-8
41              
42             =head1 NAME
43              
44             YAML::PP::Writer - Write YAML output
45              
46             =head1 SYNOPSIS
47              
48             my $writer = YAML::PP::Writer->new;
49              
50             =head1 DESCRIPTION
51              
52             The L<YAML::PP::Emitter> sends its output to the writer.
53              
54             You can use your own writer. if you want to send the YAML output to
55             somewhere else. See t/44.writer.t for an example.
56              
57             =head1 METHODS
58              
59             =over
60              
61             =item new
62              
63             my $writer = YAML::PP::Writer->new;
64              
65             Constructor.
66              
67             =item write
68              
69             $writer->write('- ');
70              
71             =item init
72              
73             $writer->init;
74              
75             Initialize
76              
77             =item finish
78              
79             $writer->finish;
80              
81             Gets called when the output ends.
82              
83             =item output, set_output
84              
85             Getter/setter for the YAML output
86              
87             =back
88              
89             =cut