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