File Coverage

blib/lib/AnyEvent/FTP/Response.pm
Criterion Covered Total %
statement 23 23 100.0
branch 3 4 75.0
condition n/a
subroutine 12 12 100.0
pod 5 6 83.3
total 43 45 95.5


line stmt bran cond sub pod time code
1             package AnyEvent::FTP::Response;
2              
3 27     27   239 use strict;
  27         58  
  27         856  
4 27     27   139 use warnings;
  27         145  
  27         654  
5 27     27   452 use 5.010;
  27         140  
6             use overload
7 1     1   14 '""' => sub { shift->as_string },
8             fallback => 1,
9 27     27   253 bool => sub { 1 }, fallback => 1;
  27     583   64  
  27         356  
  583         9334  
10              
11             # ABSTRACT: Response class for asynchronous ftp client
12             our $VERSION = '0.18'; # VERSION
13              
14              
15             sub new
16             {
17 826     826 0 5494 my($class, $code, $message) = @_;
18 826 100       2718 $message = [ $message ] unless ref($message) eq 'ARRAY';
19 826         3703 bless { code => $code, message => $message }, $class;
20             }
21              
22              
23 309     309 1 18103 sub code { shift->{code} }
24              
25              
26 442     442 1 2150 sub message { shift->{message} }
27              
28              
29 781     781 1 4680 sub is_success { shift->{code} !~ /^[45]/ }
30              
31              
32 785     785 1 3833 sub is_preliminary { shift->{code} =~ /^1/ }
33              
34              
35             sub as_string
36             {
37 1     1 1 3 my($self) = @_;
38 1 50       4 sprintf "[%d] %s%s", $self->{code}, $self->{message}->[0], @{ $self->{message} } > 1 ? '...' : '';
  1         13  
39             }
40              
41             1;
42              
43             __END__