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   1926 use 5.008008;
  4         25  
2 4     4   21 use strict;
  4         6  
  4         86  
3 4     4   20 use warnings;
  4         7  
  4         234  
4              
5             package Ask::Callback;
6              
7             our $AUTHORITY = 'cpan:TOBYINK';
8             our $VERSION = '0.014';
9              
10 4     4   1688 use Moo;
  4         8498  
  4         22  
11 4     4   4790 use namespace::autoclean;
  4         21  
  4         34  
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 12 my ( $self ) = @_;
20 3 50       61 ref $self->output_callback eq 'CODE'
21             and ref $self->input_callback eq 'CODE';
22             }
23              
24             sub quality {
25 9     9 0 238 return 0;
26             }
27              
28             sub entry {
29 16     16 0 68 my ( $self ) = @_;
30 16         55 return $self->input_callback->();
31             }
32              
33             sub info {
34 7     7 0 1259 my ( $self, %o ) = @_;
35 7         31 return $self->output_callback->( $o{text} );
36             }
37              
38             1;
39              
40             __END__