# My/Role.pm
package My::Role;
use Moo::Role;
use MooX::Role::Parameterized;
role {
my ($params, $mop) = @_;
$mop->has($params->{name} => is => $params->{is});
}
####
# My/Obj.pm
package My::Obj;
use Moo;
use My::Role;
'My::Role'->apply({
name => 'size',
is => 'ro',
});
####
package My::Obj;
use Moo;
use MooX::Role::Parameterized::With 'My::Role' => {
name => 'size',
is => 'ro',
};
####
package My::Obj;
use Moo;
use MooX::Role::Parameterized::With 0.501;
with 'My::Role' => {
name => 'size',
is => 'ro',
};
####
package My::Role;
use Moo::Role;
use MooX::Role::Parameterized 0.501;
parameter name => (is => 'ro');
parameter is => (is => 'ro');
role {
my ($params, $mop) = @_;
$mop->has($params->name => is => $params->is);
}