s/"/'/g
[gitmo/MooseX-StrictConstructor.git] / lib / MooseX / StrictConstructor / Role / Meta / Method / Constructor.pm
index 577a846..43b2aa2 100644 (file)
@@ -3,24 +3,24 @@ package MooseX::StrictConstructor::Role::Meta::Method::Constructor;
 use strict;
 use warnings;
 
+use B ();
 use Carp ();
 
 use Moose::Role;
 
-around '_generate_BUILDALL' => sub
-{
+around '_generate_BUILDALL' => sub {
     my $orig = shift;
     my $self = shift;
 
     my $source = $self->$orig();
     $source .= ";\n" if $source;
 
-    my @attrs =
-        ( map { "$_ => 1," }
-          grep { defined }
-          map { $_->init_arg() }
-          @{ $self->attributes() }
-        );
+    my @attrs = (
+        '__INSTANCE__ => 1,',
+        map { B::perlstring($_) . ' => 1,' }
+        grep {defined}
+        map  { $_->init_arg() } @{ $self->_attributes() }
+    );
 
     $source .= <<"EOF";
 my \%attrs = (@attrs);
@@ -39,21 +39,21 @@ no Moose::Role;
 
 1;
 
+# ABSTRACT: A role to make immutable constructors strict
+
 __END__
 
 =pod
 
-=head1 NAME
-
-MooseX::StrictConstructor::Role::Meta::Method::Constructor - A role to make immutable constructors strict
-
 =head1 SYNOPSIS
 
-  Moose::Util::MetaRole::apply_metaclass_roles
-      ( for_class => $caller,
-        constructor_class_roles =>
-        ['MooseX::StrictConstructor::Role::Meta::Method::Constructor'],
-      );
+  Moose::Util::MetaRole::apply_metaroles(
+      for_class => $caller,
+      class     => {
+          constructor =>
+              ['MooseX::StrictConstructor::Role::Meta::Method::Constructor'],
+      },
+  );
 
 =head1 DESCRIPTION
 
@@ -61,16 +61,5 @@ This role simply wraps C<_generate_BUILDALL()> (from
 C<Moose::Meta::Method::Constructor>) so that immutable classes have a
 strict constructor.
 
-=head1 AUTHOR
-
-Dave Rolsky, C<< <autarch@urth.org> >>
-
-=head1 COPYRIGHT & LICENSE
-
-Copyright 2007-2008 Dave Rolsky, All Rights Reserved.
-
-This program is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
 =cut