From 9af2e4e35f1285f50d25f96066bdec0a0c0788e2 Mon Sep 17 00:00:00 2001 From: dakkar Date: Fri, 21 Oct 2016 18:20:37 +0100 Subject: use more signatures as long as you don't need coercions, Type::Params and sub signatures can be used together --- lib/Sietima.pm | 20 ++++++++------------ lib/Sietima/Subscriber.pm | 2 ++ 2 files changed, 10 insertions(+), 12 deletions(-) (limited to 'lib') diff --git a/lib/Sietima.pm b/lib/Sietima.pm index 6a7a83e..df5de4e 100644 --- a/lib/Sietima.pm +++ b/lib/Sietima.pm @@ -49,9 +49,8 @@ has transport => ( ); sub _build_transport { Email::Sender::Simple->default_transport } -sub handle_mail { - state $check = compile(Object,EmailMIME); - my ($self,$incoming_mail) = $check->(@_); +sub handle_mail($self,$incoming_mail) { + state $check = compile(Object,EmailMIME); $check->(@_); my (@outgoing_messages) = $self->munge_mail($incoming_mail); for my $outgoing_message (@outgoing_messages) { @@ -60,16 +59,14 @@ sub handle_mail { return; } -sub subscribers_to_send_to { - state $check = compile(Object,EmailMIME); - my ($self,$incoming_mail) = $check->(@_); +sub subscribers_to_send_to($self,$incoming_mail) { + state $check = compile(Object,EmailMIME); $check->(@_); return $self->subscribers; } -sub munge_mail { - state $check = compile(Object,EmailMIME); - my ($self,$incoming_mail) = $check->(@_); +sub munge_mail($self,$incoming_mail) { + state $check = compile(Object,EmailMIME); $check->(@_); return Sietima::Message->new({ mail => $incoming_mail, @@ -78,9 +75,8 @@ sub munge_mail { }); } -sub send_message { - state $check = compile(Object,Message); - my ($self,$outgoing_message) = $check->(@_); +sub send_message($self,$outgoing_message) { + state $check = compile(Object,Message); $check->(@_); my $envelope = $outgoing_message->envelope; if ($envelope->{to} && $envelope->{to}->@*) { diff --git a/lib/Sietima/Subscriber.pm b/lib/Sietima/Subscriber.pm index 44b36ed..68f119b 100644 --- a/lib/Sietima/Subscriber.pm +++ b/lib/Sietima/Subscriber.pm @@ -35,6 +35,8 @@ has prefs => ( ); sub match { + # we can't use the sub signature here, because we need the + # coercion state $check = compile(Object,Address->plus_coercions(AddressFromStr)); my ($self,$addr) = $check->(@_); -- cgit v1.2.3