diff options
author | Dagfinn Ilmari Mannsåker <ilmari@ilmari.org> | 2016-08-09 16:47:41 +0100 |
---|---|---|
committer | Dagfinn Ilmari Mannsåker <ilmari@ilmari.org> | 2016-08-09 17:00:25 +0100 |
commit | 3a492beebdc22ea5f06384c99080515e11b1aa32 (patch) | |
tree | dcd2aebb1f92b45830458962344683a4a4d41a8d /lib | |
parent | Add .proverc (diff) | |
download | Sietima-3a492beebdc22ea5f06384c99080515e11b1aa32.tar.gz Sietima-3a492beebdc22ea5f06384c99080515e11b1aa32.tar.bz2 Sietima-3a492beebdc22ea5f06384c99080515e11b1aa32.zip |
Use sub signatures!
also:
* add Sietima::Policy to enable stuff everywhere
* use Test::Sietima everywhere (which imposes Sietima::Policy)
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Sietima.pm | 2 | ||||
-rw-r--r-- | lib/Sietima/MailStore.pm | 2 | ||||
-rw-r--r-- | lib/Sietima/Message.pm | 6 | ||||
-rw-r--r-- | lib/Sietima/Policy.pm | 18 | ||||
-rw-r--r-- | lib/Sietima/Role/AvoidDups.pm | 6 | ||||
-rw-r--r-- | lib/Sietima/Role/Debounce.pm | 6 | ||||
-rw-r--r-- | lib/Sietima/Role/NoMail.pm | 6 | ||||
-rw-r--r-- | lib/Sietima/Role/ReplyTo.pm | 6 | ||||
-rw-r--r-- | lib/Sietima/Role/SubjectTag.pm | 6 | ||||
-rw-r--r-- | lib/Sietima/Role/SubscriberOnly.pm | 6 | ||||
-rw-r--r-- | lib/Sietima/Role/SubscriberOnly/Drop.pm | 2 | ||||
-rw-r--r-- | lib/Sietima/Role/SubscriberOnly/Moderate.pm | 10 | ||||
-rw-r--r-- | lib/Sietima/Role/WithAdmin.pm | 2 | ||||
-rw-r--r-- | lib/Sietima/Role/WithMailStore.pm | 2 | ||||
-rw-r--r-- | lib/Sietima/Subscriber.pm | 2 | ||||
-rw-r--r-- | lib/Sietima/Types.pm | 4 |
16 files changed, 42 insertions, 44 deletions
diff --git a/lib/Sietima.pm b/lib/Sietima.pm index 79042fa..2a3c80b 100644 --- a/lib/Sietima.pm +++ b/lib/Sietima.pm @@ -1,6 +1,6 @@ package Sietima; -use 5.024; use Moo; +use Sietima::Policy; use Types::Standard qw(ArrayRef Object FileHandle Maybe); use Type::Params qw(compile); use Sietima::Types qw(Address AddressFromStr diff --git a/lib/Sietima/MailStore.pm b/lib/Sietima/MailStore.pm index cef6864..6f0a2ab 100644 --- a/lib/Sietima/MailStore.pm +++ b/lib/Sietima/MailStore.pm @@ -1,6 +1,6 @@ package Sietima::MailStore; -use 5.024; use Moo::Role; +use Sietima::Policy; requires 'store','retrieve_by_tags','retrieve_by_id'; diff --git a/lib/Sietima/Message.pm b/lib/Sietima/Message.pm index afe2ca9..9d8ef61 100644 --- a/lib/Sietima/Message.pm +++ b/lib/Sietima/Message.pm @@ -1,6 +1,6 @@ package Sietima::Message; -use 5.024; use Moo; +use Sietima::Policy; use Types::Standard qw(ArrayRef Object); use Sietima::Types qw(Address AddressFromStr Subscriber SubscriberFromAddress SubscriberFromStr @@ -36,9 +36,7 @@ has to => ( required => 1, ); -sub envelope { - my ($self) = @_; - +sub envelope ($self) { return { from => $self->from, to => [ map { $_->address } $self->to->@* ], diff --git a/lib/Sietima/Policy.pm b/lib/Sietima/Policy.pm new file mode 100644 index 0000000..bd0511f --- /dev/null +++ b/lib/Sietima/Policy.pm @@ -0,0 +1,18 @@ +package Sietima::Policy; +use 5.024; +use strict; +use warnings; +use feature ':5.24'; +use experimental 'signatures'; + +sub import { + # These affect the currently compiling scope, + # so no need for import::into + strict->import; + warnings->import; + experimental->import('signatures'); + feature->import(':5.24'); + return; +} + +1; diff --git a/lib/Sietima/Role/AvoidDups.pm b/lib/Sietima/Role/AvoidDups.pm index e0d09c9..598d57b 100644 --- a/lib/Sietima/Role/AvoidDups.pm +++ b/lib/Sietima/Role/AvoidDups.pm @@ -1,12 +1,10 @@ package Sietima::Role::AvoidDups; -use 5.024; use Moo::Role; +use Sietima::Policy; use Email::Address; use namespace::clean; -around subscribers_to_send_to => sub { - my ($orig,$self,$mail) = @_; - +around subscribers_to_send_to => sub ($orig,$self,$mail) { my @already_receiving = map { Email::Address->parse($_) } $mail->header_str('to'),$mail->header_str('cc'); diff --git a/lib/Sietima/Role/Debounce.pm b/lib/Sietima/Role/Debounce.pm index 59bb1f2..8df53a5 100644 --- a/lib/Sietima/Role/Debounce.pm +++ b/lib/Sietima/Role/Debounce.pm @@ -1,13 +1,11 @@ package Sietima::Role::Debounce; -use 5.024; use Moo::Role; +use Sietima::Policy; use namespace::clean; my $been_there = 'X-Been-There'; -around munge_mail => sub { - my ($orig,$self,$incoming_mail) = @_; - +around munge_mail => sub ($orig,$self,$incoming_mail) { my $return_path = $self->return_path->address; if (my $there = $incoming_mail->header_str($been_there)) { return if $there =~ m{\b\Q$return_path\E\b}; diff --git a/lib/Sietima/Role/NoMail.pm b/lib/Sietima/Role/NoMail.pm index c327e46..84d7d9b 100644 --- a/lib/Sietima/Role/NoMail.pm +++ b/lib/Sietima/Role/NoMail.pm @@ -1,11 +1,9 @@ package Sietima::Role::NoMail; -use 5.024; use Moo::Role; +use Sietima::Policy; use namespace::clean; -around subscribers_to_send_to => sub { - my ($orig,$self,$mail) = @_; - +around subscribers_to_send_to => sub ($orig,$self,$mail) { return [ grep { $_->prefs->{wants_mail} // 1 } $self->$orig($mail)->@*, diff --git a/lib/Sietima/Role/ReplyTo.pm b/lib/Sietima/Role/ReplyTo.pm index d4eb5e5..56a8ed9 100644 --- a/lib/Sietima/Role/ReplyTo.pm +++ b/lib/Sietima/Role/ReplyTo.pm @@ -1,6 +1,6 @@ package Sietima::Role::ReplyTo; -use 5.024; use Moo::Role; +use Sietima::Policy; use Types::Standard qw(Bool); use List::AllUtils qw(part); use namespace::clean; @@ -11,9 +11,7 @@ has munge_reply_to => ( default => 0, ); -around munge_mail => sub { - my ($orig,$self,$mail) = @_; - +around munge_mail => sub ($orig,$self,$mail) { my @messages = $self->$orig($mail); my @ret; for my $m (@messages) { diff --git a/lib/Sietima/Role/SubjectTag.pm b/lib/Sietima/Role/SubjectTag.pm index 1daa662..edaa598 100644 --- a/lib/Sietima/Role/SubjectTag.pm +++ b/lib/Sietima/Role/SubjectTag.pm @@ -1,6 +1,6 @@ package Sietima::Role::SubjectTag; -use 5.024; use Moo::Role; +use Sietima::Policy; use Types::Standard qw(Str); use namespace::clean; @@ -10,9 +10,7 @@ has subject_tag => ( required => 1, ); -around munge_mail => sub { - my ($orig,$self,$mail) = @_; - +around munge_mail => sub ($orig,$self,$mail) { my $tag = '['.$self->subject_tag.']'; my $subject = $mail->header_str('Subject'); unless ($subject =~ m{\Q$tag\E}) { diff --git a/lib/Sietima/Role/SubscriberOnly.pm b/lib/Sietima/Role/SubscriberOnly.pm index 07eac1e..f01dadf 100644 --- a/lib/Sietima/Role/SubscriberOnly.pm +++ b/lib/Sietima/Role/SubscriberOnly.pm @@ -1,6 +1,6 @@ package Sietima::Role::SubscriberOnly; -use 5.024; use Moo::Role; +use Sietima::Policy; use Email::Address; use List::AllUtils qw(any); use namespace::clean; @@ -9,9 +9,7 @@ requires 'munge_mail_from_non_subscriber'; our $let_it_pass=0; -around munge_mail => sub { - my ($orig,$self,$mail) = @_; - +around munge_mail => sub ($orig,$self,$mail) { my ($from) = Email::Address->parse( $mail->header_str('from') ); if ( $let_it_pass or any { $_->match($from) } $self->subscribers->@* ) { diff --git a/lib/Sietima/Role/SubscriberOnly/Drop.pm b/lib/Sietima/Role/SubscriberOnly/Drop.pm index c511c9b..2036c99 100644 --- a/lib/Sietima/Role/SubscriberOnly/Drop.pm +++ b/lib/Sietima/Role/SubscriberOnly/Drop.pm @@ -1,6 +1,6 @@ package Sietima::Role::SubscriberOnly::Drop; -use 5.024; use Moo::Role; +use Sietima::Policy; use namespace::clean; with 'Sietima::Role::SubscriberOnly'; diff --git a/lib/Sietima/Role/SubscriberOnly/Moderate.pm b/lib/Sietima/Role/SubscriberOnly/Moderate.pm index 912fb49..89cac02 100644 --- a/lib/Sietima/Role/SubscriberOnly/Moderate.pm +++ b/lib/Sietima/Role/SubscriberOnly/Moderate.pm @@ -1,6 +1,6 @@ package Sietima::Role::SubscriberOnly::Moderate; -use 5.024; use Moo::Role; +use Sietima::Policy; use Email::Stuffer; use Email::MIME; use namespace::clean; @@ -9,9 +9,7 @@ with 'Sietima::Role::SubscriberOnly', 'Sietima::Role::WithMailStore', 'Sietima::Role::WithAdmin'; -sub munge_mail_from_non_subscriber { - my ($self,$mail) = @_; - +sub munge_mail_from_non_subscriber ($self,$mail) { my $id = $self->mail_store->store($mail,'moderation'); my $notice = Email::Stuffer ->from($self->return_path) @@ -26,9 +24,7 @@ sub munge_mail_from_non_subscriber { return; } -sub resume { - my ($self,$mail_id) = @_; - +sub resume ($self,$mail_id) { my $mail = $self->mail_store->retrieve_by_id($mail_id); local $Sietima::Role::SubscriberOnly::let_it_pass=1; $self->handle_mail($mail); diff --git a/lib/Sietima/Role/WithAdmin.pm b/lib/Sietima/Role/WithAdmin.pm index da0f05a..49b0f51 100644 --- a/lib/Sietima/Role/WithAdmin.pm +++ b/lib/Sietima/Role/WithAdmin.pm @@ -1,6 +1,6 @@ package Sietima::Role::WithAdmin; -use 5.024; use Moo::Role; +use Sietima::Policy; use Sietima::Types qw(Address AddressFromStr); use namespace::clean; diff --git a/lib/Sietima/Role/WithMailStore.pm b/lib/Sietima/Role/WithMailStore.pm index 806d273..9d3a8bd 100644 --- a/lib/Sietima/Role/WithMailStore.pm +++ b/lib/Sietima/Role/WithMailStore.pm @@ -1,6 +1,6 @@ package Sietima::Role::WithMailStore; -use 5.024; use Moo::Role; +use Sietima::Policy; use Sietima::Types qw(MailStore); use namespace::clean; diff --git a/lib/Sietima/Subscriber.pm b/lib/Sietima/Subscriber.pm index 79a26fb..44b36ed 100644 --- a/lib/Sietima/Subscriber.pm +++ b/lib/Sietima/Subscriber.pm @@ -1,6 +1,6 @@ package Sietima::Subscriber; -use 5.024; use Moo; +use Sietima::Policy; use Types::Standard qw(ArrayRef HashRef Object); use Type::Params qw(compile); use Sietima::Types qw(Address AddressFromStr); diff --git a/lib/Sietima/Types.pm b/lib/Sietima/Types.pm index af650b9..27a3e17 100644 --- a/lib/Sietima/Types.pm +++ b/lib/Sietima/Types.pm @@ -1,7 +1,5 @@ package Sietima::Types; -use 5.024; -use strict; -use warnings; +use Sietima::Policy; use Type::Utils -all; use Types::Standard qw(Str HashRef); use namespace::clean; |