AnyEvent-FTP

 view release on metacpan or  search on metacpan

lib/AnyEvent/FTP/Response.pm  view on Meta::CPAN

package AnyEvent::FTP::Response;

use strict;
use warnings;
use 5.010;
use overload
  '""' => sub { shift->as_string },
  fallback => 1,
  bool => sub { 1 }, fallback => 1;

# ABSTRACT: Response class for asynchronous ftp client
our $VERSION = '0.20'; # VERSION


sub new
{
  my($class, $code, $message) = @_;
  $message = [ $message ] unless ref($message) eq 'ARRAY';
  bless { code => $code, message => $message }, $class;
}


sub code           { shift->{code}            }


sub message        { shift->{message}         }


sub is_success     { shift->{code} !~ /^[45]/ }


sub is_preliminary { shift->{code} =~ /^1/    }


sub as_string
{
  my($self) = @_;
  sprintf "[%d] %s%s", $self->{code}, $self->{message}->[0], @{ $self->{message} } > 1 ? '...' : '';
}

1;

__END__

=pod

=encoding UTF-8

=head1 NAME

AnyEvent::FTP::Response - Response class for asynchronous ftp client

=head1 VERSION

version 0.20

=head1 DESCRIPTION

Instances of this class represent a FTP server response.

=head1 ATTRIBUTES

=head2 code

 my $code = $client->code;

Integer code for the message.  These can be categorized thus:

=over 4

=item 1xx

Positive preliminary reply

=item 2xx

Positive completion reply

=item 3xx

Positive intermediate reply

=item 4xx

Transient negative reply

=item 5xx

Permanent negative reply

=back

Generally C<4xx> and C<5xx> messages are errors, where as C<1xx>, C<3xx> are various states of
(at least so far) successful operations.  C<2xx> indicates a completely successful
operation.

=head2 message

 my $message = $res->message;

The human readable message returned from the server.  This is always a list reference,
even if the server only returned one line.

=head1 METHODS

=head2 is_success

 my $bool = $res->is_success;

True if the response does not represent an error condition (codes C<1xx>, C<2xx> or C<3xx>).



( run in 0.637 second using v1.01-cache-2.11-cpan-39bf76dae61 )