diff options
Diffstat (limited to 'lib/Sietima/Role/WithMailStore.pm')
-rw-r--r-- | lib/Sietima/Role/WithMailStore.pm | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/lib/Sietima/Role/WithMailStore.pm b/lib/Sietima/Role/WithMailStore.pm index 58fa731..a2ae07c 100644 --- a/lib/Sietima/Role/WithMailStore.pm +++ b/lib/Sietima/Role/WithMailStore.pm @@ -4,6 +4,40 @@ use Sietima::Policy; use Sietima::Types qw(MailStore MailStoreFromHashRef); use namespace::clean; +=head1 NAME + +Sietima::Role::WithMailStore - role for lists with a store for messages + +=head1 SYNOPSIS + + my $sietima = Sietima->with_traits('WithMailStore')->new({ + %args, + mail_store => { + class => 'Sietima::MailStore::FS', + root => '/tmp', + }, + }); + +=head1 DESCRIPTION + +This role adds a L<< /C<mail_store> >> attribute. + +On its own, this role is not very useful, but other roles (like L<< +C<SubscriberOnly::Moderate>|Sietima::Role::SubscriberOnly::Moderate +>>) can have uses for an object that can persistently store messages. + +=head1 ATTRIBUTES + +=head2 C<mail_store> + +Required instance of an object that consumes the L<< +C<Sietima::MailStore> >> role. Instead of passing an instance, you can +pass a hashref (like in the L</synopsis>): the C<class> key provides +the class name, and the rest of the hash will be passed to its +constructor. + +=cut + has mail_store => ( is => 'ro', isa => MailStore, |