File Coverage

blib/lib/YAML/PP/Writer/File.pm
Criterion Covered Total %
statement 31 31 100.0
branch 6 6 100.0
condition n/a
subroutine 9 9 100.0
pod 3 3 100.0
total 49 49 100.0


line stmt bran cond sub pod time code
1 49     49   146051 use strict;
  49         69  
  49         1464  
2 49     49   160 use warnings;
  49         74  
  49         3487  
3             package YAML::PP::Writer::File;
4              
5             our $VERSION = 'v0.41.1'; # TRIAL VERSION
6              
7 49     49   229 use Scalar::Util qw/ openhandle /;
  49         72  
  49         2349  
8              
9 49     49   507 use YAML::PP::Writer;
  49         65  
  49         1995  
10             our @ISA = qw/ YAML::PP::Writer /;
11              
12 49     49   193 use Carp qw/ croak /;
  49         76  
  49         13835  
13              
14             sub _open_handle {
15 6     6   9 my ($self) = @_;
16 6 100       23 if (openhandle($self->{output})) {
17 1         2 $self->{filehandle} = $self->{output};
18 1         3 return $self->{output};
19             }
20             open my $fh, '>:encoding(UTF-8)', $self->{output}
21 5 100       1082 or croak "Could not open '$self->{output}' for writing: $!";
22 4         307 $self->{filehandle} = $fh;
23 4         15 return $fh;
24             }
25              
26             sub write {
27 30     30 1 43 my ($self, $line) = @_;
28 30         37 my $fh = $self->{filehandle};
29 30         93 print $fh $line;
30             }
31              
32             sub init {
33 6     6 1 9 my ($self) = @_;
34 6         14 my $fh = $self->_open_handle;
35             }
36              
37             sub finish {
38 5     5 1 8 my ($self) = @_;
39 5 100       22 if (openhandle($self->{output})) {
40             # Original argument was a file handle, so the caller needs
41             # to close it
42 1         2 return;
43             }
44 4         361 close $self->{filehandle};
45             }
46              
47             1;
48              
49             __END__