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   166 use strict;
  27         41  
  27         669  
4 27     27   104 use warnings;
  27         89  
  27         486  
5 27     27   309 use 5.010;
  27         103  
6             use overload
7 1     1   12 '""' => sub { shift->as_string },
8             fallback => 1,
9 27     27   187 bool => sub { 1 }, fallback => 1;
  27     583   55  
  27         271  
  583         7123  
10              
11             # ABSTRACT: Response class for asynchronous ftp client
12             our $VERSION = '0.19'; # VERSION
13              
14              
15             sub new
16             {
17 826     826 0 2531 my($class, $code, $message) = @_;
18 826 100       1954 $message = [ $message ] unless ref($message) eq 'ARRAY';
19 826         2713 bless { code => $code, message => $message }, $class;
20             }
21              
22              
23 309     309 1 14261 sub code { shift->{code} }
24              
25              
26 442     442 1 1630 sub message { shift->{message} }
27              
28              
29 781     781 1 3210 sub is_success { shift->{code} !~ /^[45]/ }
30              
31              
32 785     785 1 2635 sub is_preliminary { shift->{code} =~ /^1/ }
33              
34              
35             sub as_string
36             {
37 1     1 1 2 my($self) = @_;
38 1 50       3 sprintf "[%d] %s%s", $self->{code}, $self->{message}->[0], @{ $self->{message} } > 1 ? '...' : '';
  1         11  
39             }
40              
41             1;
42              
43             __END__