-#!/usr/bin/env perl
package MooseX::Role::Parameterized::Meta::Role::Parameterizable;
use Moose;
extends 'Moose::Meta::Role';
my $role = $self->parameterized_role_metaclass->create_anon_role(parameters => $parameters);
local $MooseX::Role::Parameterized::CURRENT_METACLASS = $role;
+
+ $self->apply_parameterizable_role($role);
+
$self->role_generator->($parameters,
operating_on => $role,
);
$role->apply($class, %args);
}
+sub apply_parameterizable_role {
+ my $self = shift;
+
+ $self->SUPER::apply(@_);
+}
+
__PACKAGE__->meta->make_immutable;
no Moose;
1;
+__END__
+
+=head1 NAME
+
+MooseX::Role::Parameterized::Meta::Role::Parameterizable - metaclass for parameterizable roles
+
+=head1 DESCRIPTION
+
+This is the metaclass for parameteriz-able roles, roles that have their
+parameters currently unbound. These are the roles that you use L<Moose/with>,
+but instead of composing the parameteriz-able role, we construct a new
+parameteriz-ed role
+(L<MooseX::Role::Parameterized::Meta::Role::Parameterized>).
+
+=cut
+