X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=gitmo%2FMooseX-StrictConstructor.git;a=blobdiff_plain;f=lib%2FMooseX%2FStrictConstructor%2FTrait%2FClass.pm;h=f032fe535811432d09fa55399ccb1a25b0116cce;hp=aea38bdfb2a9759443b6ccd60c0aac564292be19;hb=f00a034fe06bd519d9f64f2f942d4ff402d0ae87;hpb=791a5e6231a06114013593a16989e92f05409eb2 diff --git a/lib/MooseX/StrictConstructor/Trait/Class.pm b/lib/MooseX/StrictConstructor/Trait/Class.pm index aea38bd..f032fe5 100644 --- a/lib/MooseX/StrictConstructor/Trait/Class.pm +++ b/lib/MooseX/StrictConstructor/Trait/Class.pm @@ -54,6 +54,24 @@ around _inline_BUILDALL => sub { ); } if $Moose::VERSION >= 1.9900; +around _eval_environment => sub { + my $orig = shift; + my $self = shift; + + my $env = $self->$orig(); + + my %attrs = map { $_ => 1 } + grep { defined } + map { $_->init_arg() } + $self->get_all_attributes(); + + $attrs{__INSTANCE__} = 1; + + $env->{'%allowed_attrs'} = \%attrs; + + return $env; +} if $Moose::VERSION >= 1.9900; + 1; # ABSTRACT: A role to make immutable constructors strict