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   232 use strict;
  27         64  
  27         785  
4 27     27   139 use warnings;
  27         124  
  27         628  
5 27     27   456 use 5.010;
  27         142  
6             use overload
7 1     1   17 '""' => sub { shift->as_string },
8             fallback => 1,
9 27     27   273 bool => sub { 1 }, fallback => 1;
  27     583   70  
  27         423  
  583         9495  
10              
11             # ABSTRACT: Response class for asynchronous ftp client
12             our $VERSION = '0.17'; # VERSION
13              
14              
15             sub new
16             {
17 826     826 0 5557 my($class, $code, $message) = @_;
18 826 100       2659 $message = [ $message ] unless ref($message) eq 'ARRAY';
19 826         4141 bless { code => $code, message => $message }, $class;
20             }
21              
22              
23 309     309 1 14711 sub code { shift->{code} }
24              
25              
26 442     442 1 2044 sub message { shift->{message} }
27              
28              
29 781     781 1 4651 sub is_success { shift->{code} !~ /^[45]/ }
30              
31              
32 785     785 1 3682 sub is_preliminary { shift->{code} =~ /^1/ }
33              
34              
35             sub as_string
36             {
37 1     1 1 3 my($self) = @_;
38 1 50       3 sprintf "[%d] %s%s", $self->{code}, $self->{message}->[0], @{ $self->{message} } > 1 ? '...' : '';
  1         16  
39             }
40              
41             1;
42              
43             __END__