Ignore init_meta sub
[gitmo/MooseX-StrictConstructor.git] / lib / MooseX / StrictConstructor / Meta / Method / Constructor.pm
index 970bd9c..19547d3 100644 (file)
@@ -8,19 +8,24 @@ use Moose;
 
 extends 'Moose::Meta::Method::Constructor';
 
-override '_generate_BUILDALL' => sub ## no critic RequireArgUnpacking
+override '_generate_BUILDALL' => sub
 {
     my $self = shift;
 
     my $source = super();
     $source .= ";\n" if $source;
 
-    my @attrs = map { $_->name() . ' => 1,' } @{ $self->attributes() };
+    my @attrs =
+        ( map { "$_ => 1," }
+          grep { defined }
+          map { $_->init_arg() }
+          @{ $self->attributes() }
+        );
 
     $source .= <<"EOF";
 my \%attrs = (@attrs);
 
-my \@bad = sort grep { ! \$attrs{\$_} }  keys \%params;
+my \@bad = sort grep { ! \$attrs{\$_} }  keys \%{ \$params };
 
 if (\@bad) {
     Carp::confess "Found unknown attribute(s) passed to the constructor: \@bad";