aboutsummaryrefslogtreecommitdiff
path: root/lib/Sietima/MailStore.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Sietima/MailStore.pm')
-rw-r--r--lib/Sietima/MailStore.pm52
1 files changed, 40 insertions, 12 deletions
diff --git a/lib/Sietima/MailStore.pm b/lib/Sietima/MailStore.pm
index d29b3b6..fe9d4ca 100644
--- a/lib/Sietima/MailStore.pm
+++ b/lib/Sietima/MailStore.pm
@@ -3,15 +3,38 @@ use Moo::Role;
use Sietima::Policy;
use namespace::clean;
-# VERSION
+our $VERSION = '1.1.2'; # VERSION
# ABSTRACT: interface for mail stores
+
+requires 'store',
+ 'retrieve_ids_by_tags','retrieve_by_tags','retrieve_by_id',
+ 'remove','clear';
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Sietima::MailStore - interface for mail stores
+
+=head1 VERSION
+
+version 1.1.2
+
=head1 DESCRIPTION
This role defines the interface that all mail stores must adhere
to. It does not provide any implementation.
-=require C<store>
+=head1 REQUIRED METHODS
+
+=head2 C<store>
my $id = $ms->store($email_mime_object,@tags);
@@ -21,7 +44,7 @@ tags (which must be strings). Must return a unique identifier for the
stored message. It is acceptable if identical messages are
indistinguishable by the storage.
-=require C<retrieve_by_id>
+=head2 C<retrieve_by_id>
my $email_mime_object = $ms->retrieve_by_id($id);
@@ -32,7 +55,7 @@ C<Email::MIME> >> object).
If the message has been deleted, or the identifier is not recognised,
this method must return C<undef> in scalar context.
-=require C<retrieve_ids_by_tags>
+=head2 C<retrieve_ids_by_tags>
my @ids = $ms->retrieve_ids_by_tags(@tags)->@*;
@@ -55,7 +78,7 @@ For example:
$ms->retrieve_ids_by_tags('t1','t2') ==> [ $id3 ]
$ms->retrieve_ids_by_tags('t3') ==> [ ]
-=require C<retrieve_by_tags>
+=head2 C<retrieve_by_tags>
my @email_mime_objects = $ms->retrieve_by_tags(@tags)->@*;
@@ -71,7 +94,7 @@ return an arrayref of hashrefs. For example:
{ id => $id1, mail => $msg1 },
]
-=require C<remove>
+=head2 C<remove>
$ms->remove($id);
@@ -79,17 +102,22 @@ This method must remove the message corresponding to the given
identifier from the persistent storage. Removing a non-existent
message must succeed, and do nothing.
-=require C<clear>
+=head2 C<clear>
$ms->clear();
This method must remove all messages from the persistent
storage. Clearing an empty store must succeed, and do nothing.
-=cut
+=head1 AUTHOR
-requires 'store',
- 'retrieve_ids_by_tags','retrieve_by_tags','retrieve_by_id',
- 'remove','clear';
+Gianni Ceccarelli <dakkar@thenautilus.net>
-1;
+=head1 COPYRIGHT AND LICENSE
+
+This software is copyright (c) 2023 by Gianni Ceccarelli <dakkar@thenautilus.net>.
+
+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