File Coverage

blib/lib/Ask/Callback.pm
Criterion Covered Total %
statement 21 21 100.0
branch 1 2 50.0
condition n/a
subroutine 9 9 100.0
pod 0 4 0.0
total 31 36 86.1


line stmt bran cond sub pod time code
1 4     4   1979 use 5.008008;
  4         16  
2 4     4   22 use strict;
  4         8  
  4         89  
3 4     4   19 use warnings;
  4         8  
  4         282  
4              
5             package Ask::Callback;
6              
7             our $AUTHORITY = 'cpan:TOBYINK';
8             our $VERSION = '0.013';
9              
10 4     4   1723 use Moo;
  4         8383  
  4         24  
11 4     4   4843 use namespace::autoclean;
  4         10  
  4         32  
12              
13             with 'Ask::API';
14              
15             has input_callback => ( is => 'ro', required => 1 );
16             has output_callback => ( is => 'ro', required => 1 );
17              
18             sub is_usable {
19 3     3 0 11 my ( $self ) = @_;
20 3 50       64 ref $self->output_callback eq 'CODE'
21             and ref $self->input_callback eq 'CODE';
22             }
23              
24             sub quality {
25 9     9 0 158 return 0;
26             }
27              
28             sub entry {
29 16     16 0 63 my ( $self ) = @_;
30 16         55 return $self->input_callback->();
31             }
32              
33             sub info {
34 7     7 0 1276 my ( $self, %o ) = @_;
35 7         28 return $self->output_callback->( $o{text} );
36             }
37              
38             1;
39              
40             __END__