GNU.WIKI: The GNU/Linux Knowledge Base

  [HOME] [PHP Manual] [HowTo] [ABS] [MAN1] [MAN2] [MAN3] [MAN4] [MAN5] [MAN6] [MAN7] [MAN8] [MAN9]

  [0-9] [Aa] [Bb] [Cc] [Dd] [Ee] [Ff] [Gg] [Hh] [Ii] [Jj] [Kk] [Ll] [Mm] [Nn] [Oo] [Pp] [Qq] [Rr] [Ss] [Tt] [Uu] [Vv] [Ww] [Xx] [Yy] [Zz]


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.



  All copyrights belong to their respective owners. Other content (c) 2014-2018, GNU.WIKI. Please report site errors to webmaster@gnu.wiki.
Page load time: 0.090 seconds. Last modified: November 04 2018 12:49:43.