X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=gitmo%2FMoose-Policy.git;a=blobdiff_plain;f=lib%2FMoose%2FPolicy.pm;h=4cb790ef642c4ea6cd0f6d1c4ed1a42030e50377;hp=ffe4b69130a71405f0db25804b03be5b8fbe298a;hb=bfacd619d119a4262f60eadcb431fae0cde270a1;hpb=e33af5b6745a1284e5187bf78c1ea55c6bc35644 diff --git a/lib/Moose/Policy.pm b/lib/Moose/Policy.pm index ffe4b69..4cb790e 100644 --- a/lib/Moose/Policy.pm +++ b/lib/Moose/Policy.pm @@ -25,10 +25,17 @@ sub import { my %options; - $options{':attribute_metaclass'} = $policy->attribute_metaclass - if $policy->can('attribute_metaclass'); + # build options out of policy's constants + $policy->can($_) and $options{":$_"} = $policy->$_() + for (qw( + attribute_metaclass + instance_metaclass + method_metaclass + )); my $package = caller(); + $package->can('meta') and + croak("'$package' already has a meta() method"); # create a meta object so we can install &meta my $meta = $metaclass->initialize($package => %options); @@ -46,3 +53,4 @@ sub import { __END__ +