File Coverage

blib/lib/Tak/REPL.pm
Criterion Covered Total %
statement 6 22 27.2
branch 0 10 0.0
condition n/a
subroutine 2 3 66.6
pod 0 1 0.0
total 8 36 22.2


line stmt bran cond sub pod time code
1             package Tak::REPL;
2              
3 1     1   22294 use Term::ReadLine;
  1         3486  
  1         48  
4 1     1   10 use Moo;
  1         3  
  1         12  
5              
6             has client => (is => 'ro', required => 1);
7              
8             sub run {
9 0     0 0   my $client = $_[0]->client;
10 0           my $read = Term::ReadLine->new('REPL');
11              
12 0           while (1) {
13 0           my $line = $read->readline('re.pl$ ');
14 0 0         last unless defined $line;
15 0 0         next unless length $line;
16 0           my $result = $client->do(eval => $line);
17             print exists($result->{return})
18             ? $result->{return}
19 0 0         : "Error: ".$result->{exception};
20 0 0         if ($result->{stdout}) {
21 0           chomp($result->{stdout});
22 0           print "STDOUT:\n${\$result->{stdout}}\n";
  0            
23             }
24 0 0         if ($result->{stderr}) {
25 0           chomp($result->{stderr});
26 0           print "STDERR:\n${\$result->{stderr}}\n";
  0            
27             }
28             }
29             }
30              
31             1;