Net-SMTP-Verify
view release on metacpan or search on metacpan
lib/Net/SMTP/Verify/ResultSet.pm view on Meta::CPAN
package Net::SMTP::Verify::ResultSet;
use Moose;
our $VERSION = '1.04'; # VERSION
# ABSTRACT: resultset for Net::SMTP::Verify checks
use Net::SMTP::Verify::Result;
use Data::Dumper;
use JSON;
has 'results' => (
is => 'ro', isa => 'HashRef[Net::SMTP::Verify::Result]', lazy => 1,
default => sub { {} },
traits => [ 'Hash' ],
handles => {
'recipient' => 'get',
'recipients' => 'keys',
'entries' => 'values',
'count' => 'count',
},
);
# install shortcuts
*rcpt = \&recipient;
*rcpts = \&recipients;
sub add_result {
my ( $self, $result ) = @_;
$self->results->{$result->address} = $result;
return;
}
sub set {
my ( $self, $rcpts, $field, @params ) = @_;
if( ! ref $rcpts ) {
$rcpts = [ $rcpts ];
}
foreach my $rcpt ( @$rcpts ) {
my $result = $self->rcpt( $rcpt );
if( ! defined $result ) {
$result = Net::SMTP::Verify::Result->new(
address => $rcpt,
);
$self->add_result( $result );
}
$result->$field( @params );
}
return;
}
sub dump {
my $self = shift;
print Dumper $self->entries;
return;
}
sub dump_json {
my $self = shift;
foreach my $rcpt ( $self->entries ) {
print to_json { %$rcpt }, {
pretty => 1,
};
}
return;
}
( run in 1.616 second using v1.01-cache-2.11-cpan-39bf76dae61 )