diff options
Diffstat (limited to 'lib/Sietima/Subscriber.pm')
-rw-r--r-- | lib/Sietima/Subscriber.pm | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/lib/Sietima/Subscriber.pm b/lib/Sietima/Subscriber.pm index b62e44f..606f61d 100644 --- a/lib/Sietima/Subscriber.pm +++ b/lib/Sietima/Subscriber.pm @@ -2,7 +2,7 @@ package Sietima::Subscriber; use Moo; use Sietima::Policy; use Types::Standard qw(ArrayRef HashRef Object); -use Type::Params qw(compile); +use Type::Params -sigs; use Sietima::Types qw(Address AddressFromStr); use Email::Address; use List::AllUtils qw(any); @@ -87,12 +87,11 @@ a subscriber. =cut -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->(@_); - +signature_for match => ( + method => Object, + positional => [ Address->plus_coercions(AddressFromStr) ], +); +sub match($self,$addr) { return any { $addr->address eq $_->address } $self->primary, $self->aliases->@*; } |