Email::Sender::Failure::Multi - an aggregate of multiple failures


Email-Sender documentation Contained in the Email-Sender distribution.

Index


Code Index:

NAME

Top

Email::Sender::Failure::Multi - an aggregate of multiple failures

VERSION

Top

version 0.110001

DESCRIPTION

Top

A multiple failure report is raised when more than one failure is encountered when sending a single message, or when mixed states were encountered.

ATTRIBUTES

Top

failures

This method returns a list (or arrayref, in scalar context) of other Email::Sender::Failure objects represented by this multi.

METHODS

Top

isa

A multiple failure will report that it is a Permanent or Temporary if all of its contained failures are failures of that type.

AUTHOR

Top

Ricardo Signes <rjbs@cpan.org>

COPYRIGHT AND LICENSE

Top


Email-Sender documentation Contained in the Email-Sender distribution.

package Email::Sender::Failure::Multi;
BEGIN {
  $Email::Sender::Failure::Multi::VERSION = '0.110001';
}
use Moose;
extends 'Email::Sender::Failure';
# ABSTRACT: an aggregate of multiple failures


has failures => (
  is  => 'ro',
  isa => 'ArrayRef',
  auto_deref => 1,
);

sub recipients {
  my ($self) = @_;
  my @rcpts = map { $_->recipients } $self->failures;
  return wantarray ? @rcpts : \@rcpts;
}


sub isa {
  my ($self, $class) = @_;

  if (
    $class eq 'Email::Sender::Failure::Permanent'
    or
    $class eq 'Email::Sender::Failure::Temporary'
  ) {
    my @failures = $self->failures;
    return 1 if @failures == grep { $_->isa($class) } @failures;
  }

  return $self->SUPER::isa($class);
}

__PACKAGE__->meta->make_immutable(inline_constructor => 0);
no Moose;
1;

__END__