Initial Commit
This commit is contained in:
119
database/perl/vendor/lib/Email/Sender/Failure/Multi.pm
vendored
Normal file
119
database/perl/vendor/lib/Email/Sender/Failure/Multi.pm
vendored
Normal file
@@ -0,0 +1,119 @@
|
||||
package Email::Sender::Failure::Multi;
|
||||
# ABSTRACT: an aggregate of multiple failures
|
||||
$Email::Sender::Failure::Multi::VERSION = '1.300035';
|
||||
use Moo;
|
||||
extends 'Email::Sender::Failure';
|
||||
|
||||
use MooX::Types::MooseLike::Base qw(ArrayRef);
|
||||
|
||||
#pod =head1 DESCRIPTION
|
||||
#pod
|
||||
#pod A multiple failure report is raised when more than one failure is encountered
|
||||
#pod when sending a single message, or when mixed states were encountered.
|
||||
#pod
|
||||
#pod =attr failures
|
||||
#pod
|
||||
#pod This method returns a list of other Email::Sender::Failure objects represented
|
||||
#pod by this multi.
|
||||
#pod
|
||||
#pod =cut
|
||||
|
||||
has failures => (
|
||||
is => 'ro',
|
||||
isa => ArrayRef,
|
||||
required => 1,
|
||||
reader => '__get_failures',
|
||||
);
|
||||
|
||||
sub __failures { @{$_[0]->__get_failures} }
|
||||
|
||||
sub failures {
|
||||
my ($self) = @_;
|
||||
return $self->__failures if wantarray;
|
||||
return if ! defined wantarray;
|
||||
|
||||
Carp::carp("failures in scalar context is deprecated and WILL BE REMOVED");
|
||||
return $self->__get_failures;
|
||||
}
|
||||
|
||||
sub recipients {
|
||||
my ($self) = @_;
|
||||
my @rcpts = map { $_->recipients } $self->failures;
|
||||
|
||||
return @rcpts if wantarray;
|
||||
return if ! defined wantarray;
|
||||
|
||||
Carp::carp("recipients in scalar context is deprecated and WILL BE REMOVED");
|
||||
return \@rcpts;
|
||||
}
|
||||
|
||||
#pod =method isa
|
||||
#pod
|
||||
#pod A multiple failure will report that it is a Permanent or Temporary if all of
|
||||
#pod its contained failures are failures of that type.
|
||||
#pod
|
||||
#pod =cut
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
no Moo;
|
||||
1;
|
||||
|
||||
__END__
|
||||
|
||||
=pod
|
||||
|
||||
=encoding UTF-8
|
||||
|
||||
=head1 NAME
|
||||
|
||||
Email::Sender::Failure::Multi - an aggregate of multiple failures
|
||||
|
||||
=head1 VERSION
|
||||
|
||||
version 1.300035
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
A multiple failure report is raised when more than one failure is encountered
|
||||
when sending a single message, or when mixed states were encountered.
|
||||
|
||||
=head1 ATTRIBUTES
|
||||
|
||||
=head2 failures
|
||||
|
||||
This method returns a list of other Email::Sender::Failure objects represented
|
||||
by this multi.
|
||||
|
||||
=head1 METHODS
|
||||
|
||||
=head2 isa
|
||||
|
||||
A multiple failure will report that it is a Permanent or Temporary if all of
|
||||
its contained failures are failures of that type.
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Ricardo Signes <rjbs@semiotic.systems>
|
||||
|
||||
=head1 COPYRIGHT AND LICENSE
|
||||
|
||||
This software is copyright (c) 2020 by Ricardo Signes.
|
||||
|
||||
This is free software; you can redistribute it and/or modify it under
|
||||
the same terms as the Perl 5 programming language system itself.
|
||||
|
||||
=cut
|
||||
Reference in New Issue
Block a user