diff options
Diffstat (limited to 'lib/MaildirIndexer/Email.pm6')
-rw-r--r-- | lib/MaildirIndexer/Email.pm6 | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/MaildirIndexer/Email.pm6 b/lib/MaildirIndexer/Email.pm6 new file mode 100644 index 0000000..f5d1c39 --- /dev/null +++ b/lib/MaildirIndexer/Email.pm6 @@ -0,0 +1,21 @@ +use v6.d.PREVIEW; +unit class MaildirIndexer::Email; + +has %!headers; +has $!body; + +method BUILD(:%!headers,:$!body) { } + +method message-id { split-refs(%!headers<message-id>)[0] } +method refs { + return |( + split-refs(%!headers<in-reply-to>), + split-refs(%!headers<references>).reverse, + ); +} + +multi split-refs(Any) { return (); } +multi split-refs(Str:D $str) { + return $/<refs>ยป.Str if $str ~~ m{'<' $<refs> = (<-[<>]>+)+ % [ '>' .*? '<' ] '>' }; + return (); +} |