2 package MooseX::Role::Parameterized;
5 extends 'Moose::Exporter';
7 use MooseX::Role::Parameterized::Meta::Role;
9 __PACKAGE__->setup_import_methods(
10 with_caller => ['parameter', 'role'],
15 $caller->meta->add_parameter(@_);
20 my $role_generator = shift;
21 $caller->meta->role_generator($role_generator);
27 return Moose::Role->init_meta(@_,
28 metaclass => 'MooseX::Role::Parameterized::Meta::Role',
32 # give role a (&) prototype
33 around _make_wrapper => sub {
35 my ($self, $caller, $sub, $fq_name) = @_;
37 if ($fq_name =~ /::role$/) {
38 return sub (&) { $sub->($caller, @_) };