Canonicalize the coderef version of trigger to a hashref version
Shawn M Moore [Wed, 16 Jul 2008 05:44:28 +0000 (05:44 +0000)]
lib/Mouse/Meta/Attribute.pm

index 050ec49..023ab4d 100644 (file)
@@ -256,9 +256,17 @@ sub validate_args {
         && $args->{isa} ne 'ArrayRef'
         && $args->{isa} ne 'HashRef';
 
-    confess "Trigger must be a CODE or HASH ref on attribute ($name)"
-        if $args{trigger}
-        && ref($args{trigger}) ne 'CODE' && ref($args{trigger}) ne 'HASH';
+    if ($args->{trigger}) {
+        if (ref($args->{trigger}) eq 'CODE') {
+            $args->{trigger} = {
+                after => $args->{trigger},
+            };
+        }
+
+        confess "Trigger must be a CODE or HASH ref on attribute ($name)"
+            if $args->{trigger}
+            && ref($args->{trigger}) ne 'HASH';
+    }
 
     return 1;
 }