Initial class construction

This commit is contained in:
João Narciso
2019-05-06 16:34:28 +02:00
parent 67f2d57e03
commit 431ff5f7d4
5813 changed files with 1622108 additions and 0 deletions

View File

@ -0,0 +1,72 @@
# Copyrights 1995-2018 by [Mark Overmeer].
# For other contributors see ChangeLog.
# See the manual pages for details on the licensing terms.
# Pod stripped from pm file by OODoc 2.02.
# This code is part of the bundle MailTools. Meta-POD processed with
# OODoc into POD and HTML manual-pages. See README.md for Copyright.
# Licensed under the same terms as Perl itself.
use strict;
package Mail::Field::AddrList;
use vars '$VERSION';
$VERSION = '2.20';
use base 'Mail::Field';
use Carp;
use Mail::Address;
my $x = bless [];
$x->register('To');
$x->register('From');
$x->register('Cc');
$x->register('Reply-To');
$x->register('Sender');
sub create(@)
{ my ($self, %arg) = @_;
$self->{AddrList} = {};
while(my ($e, $n) = each %arg)
{ $self->{AddrList}{$e} = Mail::Address->new($n, $e);
}
$self;
}
sub parse($)
{ my ($self, $string) = @_;
foreach my $a (Mail::Address->parse($string))
{ my $e = $a->address;
$self->{AddrList}{$e} = $a;
}
$self;
}
sub stringify()
{ my $self = shift;
join(", ", map { $_->format } values %{$self->{AddrList}});
}
sub addresses { keys %{shift->{AddrList}} }
# someone forgot to implement a method to return the Mail::Address
# objects. Added in 2.00; a pity that the name addresses() is already
# given :( That one should have been named emails()
sub addr_list { values %{shift->{AddrList}} }
sub names { map { $_->name } values %{shift->{AddrList}} }
sub set_address($$)
{ my ($self, $email, $name) = @_;
$self->{AddrList}{$email} = Mail::Address->new($name, $email);
$self;
}
1;

View File

@ -0,0 +1,66 @@
# Copyrights 1995-2018 by [Mark Overmeer].
# For other contributors see ChangeLog.
# See the manual pages for details on the licensing terms.
# Pod stripped from pm file by OODoc 2.02.
# This code is part of the bundle MailTools. Meta-POD processed with
# OODoc into POD and HTML manual-pages. See README.md for Copyright.
# Licensed under the same terms as Perl itself.
package Mail::Field::Date;
use vars '$VERSION';
$VERSION = '2.20';
use base 'Mail::Field';
use strict;
use Date::Format qw(time2str);
use Date::Parse qw(str2time);
(bless [])->register('Date');
sub set()
{ my $self = shift;
my $arg = @_ == 1 ? shift : { @_ };
foreach my $s (qw(Time TimeStr))
{ if(exists $arg->{$s})
{ $self->{$s} = $arg->{$s} }
else { delete $self->{$s} }
}
$self;
}
sub parse($)
{ my $self = shift;
delete $self->{Time};
$self->{TimeStr} = shift;
$self;
}
sub time(;$)
{ my $self = shift;
if(@_)
{ delete $self->{TimeStr};
return $self->{Time} = shift;
}
$self->{Time} ||= str2time $self->{TimeStr};
}
sub stringify
{ my $self = shift;
$self->{TimeStr} ||= time2str("%a, %e %b %Y %T %z", $self->time);
}
sub reformat
{ my $self = shift;
$self->time($self->time);
$self->stringify;
}
1;

View File

@ -0,0 +1,37 @@
# Copyrights 1995-2018 by [Mark Overmeer].
# For other contributors see ChangeLog.
# See the manual pages for details on the licensing terms.
# Pod stripped from pm file by OODoc 2.02.
# This code is part of the bundle MailTools. Meta-POD processed with
# OODoc into POD and HTML manual-pages. See README.md for Copyright.
# Licensed under the same terms as Perl itself.
package Mail::Field::Generic;
use vars '$VERSION';
$VERSION = '2.20';
use base 'Mail::Field';
use Carp;
sub create
{ my ($self, %arg) = @_;
$self->{Text} = delete $arg{Text};
croak "Unknown options " . join(",", keys %arg)
if %arg;
$self;
}
sub parse
{ my $self = shift;
$self->{Text} = shift || "";
$self;
}
sub stringify { shift->{Text} }
1;