logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

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

Author

         Hans Dieter Pearcey <hdp@cpan.org>

Blame

           Florian Ragwitz (rafl)

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.

Name

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

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

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");

Version

       version 0.004

See Also