---
name: "MooseX::RelatedClassRoles"
section: "3pm"
platform: "linux"
package: "libmoosex-relatedclassroles-perl"
version: "0.004-1.1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/MooseX::RelatedClassRoles"
---

# MooseX::RelatedClassRoles(3pm)

Apply roles to a class related to yours

## 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.
