diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Sietima/Role/SubjectTag.pm | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/lib/Sietima/Role/SubjectTag.pm b/lib/Sietima/Role/SubjectTag.pm new file mode 100644 index 0000000..1daa662 --- /dev/null +++ b/lib/Sietima/Role/SubjectTag.pm @@ -0,0 +1,26 @@ +package Sietima::Role::SubjectTag; +use 5.024; +use Moo::Role; +use Types::Standard qw(Str); +use namespace::clean; + +has subject_tag => ( + is => 'ro', + isa => Str, + required => 1, +); + +around munge_mail => sub { + my ($orig,$self,$mail) = @_; + + my $tag = '['.$self->subject_tag.']'; + my $subject = $mail->header_str('Subject'); + unless ($subject =~ m{\Q$tag\E}) { + $mail->header_str_set( + Subject => "$tag $subject", + ); + } + return $self->$orig($mail); +}; + +1; |