X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMooseX%2FMetaDescription%2FMeta%2FTrait.pm;h=cedb75a6b95edbb36564e0fee0cf6cd8fab86e4b;hb=7c697304c34ed8e620e2c41e3d5cce74c578b653;hp=50bc1f475e6afb297d07edc8d51521a51c5e41fa;hpb=56e78a9caff840fb68085ead8837a64c839740de;p=gitmo%2FMooseX-MetaDescription.git diff --git a/lib/MooseX/MetaDescription/Meta/Trait.pm b/lib/MooseX/MetaDescription/Meta/Trait.pm index 50bc1f4..cedb75a 100644 --- a/lib/MooseX/MetaDescription/Meta/Trait.pm +++ b/lib/MooseX/MetaDescription/Meta/Trait.pm @@ -1,7 +1,7 @@ package MooseX::MetaDescription::Meta::Trait; use Moose::Role; -our $VERSION = '0.02'; +our $VERSION = '0.03'; our $AUTHORITY = 'cpan:STEVAN'; has 'description' => ( @@ -35,7 +35,7 @@ has 'metadescription' => ( if (my $traits = delete $desc->{traits}) { my $meta = Moose::Meta::Class->create_anon_class( superclasses => [ $metadesc_class ], - roles => $traits, + roles => $self->prepare_traits_for_application($traits), ); $meta->add_method('meta' => sub { $meta }); $metadesc_class = $meta->name; @@ -45,6 +45,9 @@ has 'metadescription' => ( }, ); +# this is for the subclasses to use ... +sub prepare_traits_for_application { $_[1] } + no Moose::Role; 1; __END__ @@ -99,6 +102,12 @@ it is generated lazily and is also read-only. In general you will never need to set this yourself, but simply set C and it will all just work. +=item B + +This is passed the ARRAY ref of trait names so that they can be pre-processed +before they are applied to the metadescription. It is expected to return +an ARRAY ref of trait names to be applied. By default it simply returns what +it is given. =item B