File Coverage

blib/lib/IO/All/STDIO.pm
Criterion Covered Total %
statement 35 35 100.0
branch 3 4 75.0
condition 1 2 50.0
subroutine 10 10 100.0
pod 5 6 83.3
total 54 57 94.7


line stmt bran cond sub pod time code
1 3     3   2043 use strict; use warnings;
  3     3   6  
  3         83  
  3         16  
  3         5  
  3         117  
2             package IO::All::STDIO;
3              
4 3     3   15 use IO::All -base;
  3         15  
  3         21  
5 3     3   633 use IO::File;
  3         8488  
  3         996  
6              
7             const type => 'stdio';
8              
9             sub stdio {
10 2     2 1 6 my $self = shift;
11 2         4 bless $self, __PACKAGE__;
12 2         10 return $self->_init;
13             }
14              
15             sub stdin {
16 1     1 1 2 my $self = shift;
17 1         3 $self->open('<');
18 1         4 return $self;
19             }
20              
21             sub stdout {
22 1     1 1 2 my $self = shift;
23 1         4 $self->open('>');
24 1         4 return $self;
25             }
26              
27             sub stderr {
28 2     2 1 4 my $self = shift;
29 2         5 $self->open_stderr;
30 2         62 return $self;
31             }
32              
33             sub open {
34 4     4 1 8 my $self = shift;
35 4         11 $self->is_open(1);
36 4   50     15 my $mode = shift || $self->mode || '<';
37 4 100       13 my $fileno = $mode eq '>'
38             ? fileno(STDOUT)
39             : fileno(STDIN);
40 4         16 $self->io_handle(IO::File->new);
41 4         14 $self->io_handle->fdopen($fileno, $mode);
42 4         133 $self->_set_binmode;
43             }
44              
45             sub open_stderr {
46 2     2 0 3 my $self = shift;
47 2         43 $self->is_open(1);
48 2         8 $self->io_handle(IO::File->new);
49 2 50       5 $self->io_handle->fdopen(fileno(STDERR), '>') ? $self : 0;
50             }
51              
52             # XXX Add overload support
53              
54             1;