Fix evaluation
[gitmo/Perl-Critic-Dynamic-Moose.git] / lib / Perl / Critic / Policy / Dynamic / Moose.pm
index a50cebe..8b71691 100644 (file)
@@ -32,8 +32,11 @@ sub violates_dynamic {
 
     my @violations;
     for my $package (@packages) {
-        my $meta = Class::MOP::class_of($package);
-        next unless grep { $meta->isa($_) } $self->applies_to_metaclass;
+        my $meta = Class::MOP::class_of($package)
+            or next;
+
+        grep { $meta->isa($_) } $self->applies_to_metaclass
+            or next;
 
         push @violations, $self->violates_metaclass($meta, $doc);
     }
@@ -45,7 +48,11 @@ sub compile_document {
     my $self = shift;
     my $doc = $self->document;
 
-    eval "$doc";
+    my $source_code = $doc->content;
+
+    eval $source_code;
+
+    die "Unable to execute " . $doc->filename . ": $@" if $@;
 }
 
 sub find_packages {