X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=gitmo%2FMooseX-StrictConstructor.git;a=blobdiff_plain;f=lib%2FMooseX%2FStrictConstructor%2FTrait%2FApplicationToClass.pm;fp=lib%2FMooseX%2FStrictConstructor%2FTrait%2FApplicationToClass.pm;h=7ec0fd2b0ae3cf12bd494924e7fcb6d474fe6439;hp=0000000000000000000000000000000000000000;hb=98630abcd6d5539820a18badabe2105724116264;hpb=4a070866bc7b2cf1792322865e0c7997ef7401a3 diff --git a/lib/MooseX/StrictConstructor/Trait/ApplicationToClass.pm b/lib/MooseX/StrictConstructor/Trait/ApplicationToClass.pm new file mode 100644 index 0000000..7ec0fd2 --- /dev/null +++ b/lib/MooseX/StrictConstructor/Trait/ApplicationToClass.pm @@ -0,0 +1,26 @@ +package MooseX::StrictConstructor::Trait::ApplicationToClass; +use Moose::Role; + +around apply => sub { + my $orig = shift; + my $self = shift; + my ($role, $class) = @_; + + Moose::Util::MetaRole::apply_base_class_roles( + for => $class, + roles => ['MooseX::StrictConstructor::Role::Object'], + ); + + $class = Moose::Util::MetaRole::apply_metaroles( + for => $class, + class_metaroles => { + class => [ 'MooseX::StrictConstructor::Trait::Class' ], + } + ); + + $self->$orig( $role, $class ); +}; + +no Moose::Role; + +1;