X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMooseX%2FStrictConstructor%2FRole%2FMeta%2FMethod%2FConstructor.pm;h=4000083828a6afffbb3dd62ded507297370ece49;hb=d78f8e746b0fc4ab8e44dfa9ea7dcc8f28cce880;hp=335173831e771b72b0f314c5a1697c19f1038e4b;hpb=fbfaa61fd77d92711dd73a1022571b0d09166c88;p=gitmo%2FMooseX-StrictConstructor.git diff --git a/lib/MooseX/StrictConstructor/Role/Meta/Method/Constructor.pm b/lib/MooseX/StrictConstructor/Role/Meta/Method/Constructor.pm index 3351738..4000083 100644 --- a/lib/MooseX/StrictConstructor/Role/Meta/Method/Constructor.pm +++ b/lib/MooseX/StrictConstructor/Role/Meta/Method/Constructor.pm @@ -7,20 +7,19 @@ 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 {"$_ => 1,"} + grep {defined} + map { $_->init_arg() } @{ $self->_attributes() } + ); $source .= <<"EOF"; my \%attrs = (@attrs); @@ -39,17 +38,19 @@ 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 - use MooseX::StrictConstructor; + Moose::Util::MetaRole::apply_metaclass_roles + ( for_class => $caller, + constructor_class_roles => + ['MooseX::StrictConstructor::Role::Meta::Method::Constructor'], + ); =head1 DESCRIPTION @@ -57,16 +58,5 @@ This role simply wraps C<_generate_BUILDALL()> (from C) so that immutable classes have a strict constructor. -=head1 AUTHOR - -Dave Rolsky, C<< >> - -=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