NAME

MooseX::RelatedClassRoles - Apply roles to a class related to yours

VERSION

version 0.004

SYNOPSIS

package My::Class;
use Moose;

has driver_class => (
  isa => 'MyApp::Driver',
);

with 'MooseX::RelatedClassRoles' => { name => 'driver' };

# ...

my $obj = My::Class->new(driver_class => "Some::Driver");
$obj->apply_driver_class_roles("Other::Driver::Role");

DESCRIPTION

Frequently, you have to use a class that provides some foo_class accessor or attribute as a method of dependency injection. Use this role when you'd rather apply roles to make your custom foo_class instead of manually setting up a subclass.

PARAMETERS

name

A string naming the related class. driver in the "SYNOPSIS". Required.

class_accessor_name

A string naming the related class accessor. driver_class in the "SYNOPSIS". Defaults to appending _class to the name.

apply_method_name

A string naming the role applying method. apply_driver_class_names in the "SYNOPSIS". Defaults to adding apply_ and _names to the class_accessor_name.

BLAME

Florian Ragwitz (rafl)

AUTHOR

Hans Dieter Pearcey <hdp@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2009 by Hans Dieter Pearcey <hdp@cpan.org>.

This is free software; you can redistribute it and/or modify it under the same terms as perl itself.