aboutsummaryrefslogtreecommitdiff
path: root/lib/Sietima/HeaderURI.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Sietima/HeaderURI.pm')
-rw-r--r--lib/Sietima/HeaderURI.pm26
1 files changed, 10 insertions, 16 deletions
diff --git a/lib/Sietima/HeaderURI.pm b/lib/Sietima/HeaderURI.pm
index 347ca77..2196724 100644
--- a/lib/Sietima/HeaderURI.pm
+++ b/lib/Sietima/HeaderURI.pm
@@ -3,7 +3,7 @@ use Moo;
use Sietima::Policy;
use Sietima::Types qw(Address AddressFromStr is_Address);
use Types::Standard qw(Str is_Str ClassName HashRef Optional);
-use Type::Params qw(compile);
+use Type::Params -sigs;
use Types::URI qw(Uri is_Uri);
use Email::Address;
use namespace::clean;
@@ -101,10 +101,7 @@ preserved.
=cut
-sub _args_from_address {
- my ($address, $query) = @_;
- $query ||= {};
-
+sub _args_from_address($address, $query={}) {
my $uri = URI->new($address->address,'mailto');
$uri->query_form($query->%*);
@@ -119,8 +116,7 @@ sub _args_from_address {
};
}
-around BUILDARGS => sub {
- my ($orig, $class, @args) = @_;
+around BUILDARGS => sub($orig, $class, @args) {
if (@args != 1 or ref($args[0]) eq 'HASH' and $args[0]->{uri}) {
return $class->$orig(@args);
}
@@ -158,14 +154,14 @@ Common query keys are C<subject> and C<body>. See RFC 6068 ("The
=cut
-sub new_from_address {
- state $check = compile(
- ClassName,
+signature_for new_from_address => (
+ method => Str,
+ positional => [
Address->plus_coercions(AddressFromStr),
Optional[HashRef],
- );
- my ($class, $address, $query) = $check->(@_);
-
+ ],
+);
+sub new_from_address($class, $address, $query={}) {
return $class->new(_args_from_address($address,$query));
}
@@ -196,9 +192,7 @@ C<header_raw_set>|Email::Simple::Header/header_raw_set >>.
=cut
-sub as_header_raw {
- my ($self) = @_;
-
+sub as_header_raw($self) {
my $str = sprintf '<%s>',$self->uri;
if (my $c = $self->comment) {
$str .= sprintf ' (%s)',$c;