sanity check code for default providers is now more readable
Christian Walde [Mon, 2 Jul 2012 16:14:16 +0000 (18:14 +0200)]
lib/Method/Generate/Accessor.pm

index 01acab8..88e38a3 100644 (file)
@@ -45,14 +45,9 @@ sub generate_method {
   }
   if (exists $spec->{default}) {
     my $default = $spec->{default};
-    unless (ref $default) {
-      die "Invalid default $default";
-    }
-    if (ref $default ne 'CODE') {
-      unless (eval { \&$default }) {
-        die "Invalid default $default";
-      }
-    }
+    # default can be either a coderef or an overloaded object
+    die "Invalid default $default" unless ref $default
+      and ( ref $default eq 'CODE' or eval { \&$default } );
   }
 
   my %methods;