:: RootR ::  Hosting Order Map Login   Secure Inter-Network Operations  
 
Moose::Meta::Role(3pm) - phpMan

Command: man perldoc info search(apropos)  


Moose::Meta::Role(3pm)         User Contributed Perl Documentation         Moose::Meta::Role(3pm)



NAME
       Moose::Meta::Role - The Moose Role metaclass

VERSION
       version 2.1213

DESCRIPTION
       This class is a subclass of Class::MOP::Module that provides additional Moose-specific
       functionality.

       Its API looks a lot like Moose::Meta::Class, but internally it implements many things
       differently. This may change in the future.

INHERITANCE
       "Moose::Meta::Role" is a subclass of Class::MOP::Module.

METHODS
   Construction
       Moose::Meta::Role->initialize($role_name)
           This method creates a new role object with the provided name.

       Moose::Meta::Role->combine( [ $role => { ... } ], [ $role ], ... )
           This method accepts a list of array references. Each array reference should contain a
           role name or Moose::Meta::Role object as its first element. The second element is an
           optional hash reference. The hash reference can contain "-excludes" and "-alias" keys
           to control how methods are composed from the role.

           The return value is a new Moose::Meta::Role::Composite that represents the combined
           roles.

       $metarole->composition_class_roles
           When combining multiple roles using "combine", this method is used to obtain a list of
           role names to be applied to the Moose::Meta::Role::Composite instance returned by
           "combine". The default implementation returns an empty list. Extensions that need to
           hook into role combination may wrap this method to return additional role names.

       Moose::Meta::Role->create($name, %options)
           This method is identical to the Moose::Meta::Class "create" method.

       Moose::Meta::Role->create_anon_role
           This method is identical to the Moose::Meta::Class "create_anon_class" method.

       $metarole->is_anon_role
           Returns true if the role is an anonymous role.

       $metarole->consumers
           Returns a list of names of classes and roles which consume this role.

   Role application
       $metarole->apply( $thing, @options )
           This method applies a role to the given $thing. That can be another Moose::Meta::Role,
           object, a Moose::Meta::Class object, or a (non-meta) object instance.

           The options are passed directly to the constructor for the appropriate
           Moose::Meta::Role::Application subclass.

           Note that this will apply the role even if the $thing in question already "does" this
           role.  "does_role" in Moose::Util is a convenient wrapper for finding out if role
           application is necessary.

   Roles and other roles
       $metarole->get_roles
           This returns an array reference of roles which this role does. This list may include
           duplicates.

       $metarole->calculate_all_roles
           This returns a unique list of all roles that this role does, and all the roles that
           its roles do.

       $metarole->does_role($role)
           Given a role name or Moose::Meta::Role object, returns true if this role does the
           given role.

       $metarole->add_role($role)
           Given a Moose::Meta::Role object, this adds the role to the list of roles that the
           role does.

       $metarole->get_excluded_roles_list
           Returns a list of role names which this role excludes.

       $metarole->excludes_role($role_name)
           Given a role name, returns true if this role excludes the named role.

       $metarole->add_excluded_roles(@role_names)
           Given one or more role names, adds those roles to the list of excluded roles.

   Methods
       The methods for dealing with a role's methods are all identical in API and behavior to the
       same methods in Class::MOP::Class.

       $metarole->method_metaclass
           Returns the method metaclass name for the role. This defaults to
           Moose::Meta::Role::Method.

       $metarole->get_method($name)
       $metarole->has_method($name)
       $metarole->add_method( $name, $body )
       $metarole->get_method_list
       $metarole->find_method_by_name($name)
           These methods are all identical to the methods of the same name in Class::MOP::Package

   Attributes
       As with methods, the methods for dealing with a role's attribute are all identical in API
       and behavior to the same methods in Class::MOP::Class.

       However, attributes stored in this class are not stored as objects. Rather, the attribute
       definition is stored as a hash reference. When a role is composed into a class, this hash
       reference is passed directly to the metaclass's "add_attribute" method.

       This is quite likely to change in the future.

       $metarole->get_attribute($attribute_name)
       $metarole->has_attribute($attribute_name)
       $metarole->get_attribute_list
       $metarole->add_attribute($name, %options)
       $metarole->remove_attribute($attribute_name)

   Overload introspection and creation
       The methods for dealing with a role's overloads are all identical in API and behavior to
       the same methods in Class::MOP::Class. Note that these are not particularly useful (yet),
       because overloads do not participate in role composition.

       $metarole->is_overloaded
       $metarole->get_overloaded_operator($op)
       $metarole->has_overloaded_operator($op)
       $metarole->get_overload_list
       $metarole->get_all_overloaded_operators
       $metarole->add_overloaded_operator($op, $impl)
       $metarole->remove_overloaded_operator($op)

   Required methods
       $metarole->get_required_method_list
           Returns the list of methods required by the role.

       $metarole->requires_method($name)
           Returns true if the role requires the named method.

       $metarole->add_required_methods(@names)
           Adds the named methods to the role's list of required methods.

       $metarole->remove_required_methods(@names)
           Removes the named methods from the role's list of required methods.

       $metarole->add_conflicting_method(%params)
           Instantiate the parameters as a Moose::Meta::Role::Method::Conflicting object, then
           add it to the required method list.

   Method modifiers
       These methods act like their counterparts in Class::MOP::Class and Moose::Meta::Class.

       However, method modifiers are simply stored internally, and are not applied until the role
       itself is applied to a class.

       $metarole->add_after_method_modifier($method_name, $method)
       $metarole->add_around_method_modifier($method_name, $method)
       $metarole->add_before_method_modifier($method_name, $method)
       $metarole->add_override_method_modifier($method_name, $method)
           These methods all add an appropriate modifier to the internal list of modifiers.

       $metarole->has_after_method_modifiers
       $metarole->has_around_method_modifiers
       $metarole->has_before_method_modifiers
       $metarole->has_override_method_modifier
           Return true if the role has any modifiers of the given type.

       $metarole->get_after_method_modifiers($method_name)
       $metarole->get_around_method_modifiers($method_name)
       $metarole->get_before_method_modifiers($method_name)
           Given a method name, returns a list of the appropriate modifiers for that method.

       $metarole->get_override_method_modifier($method_name)
           Given a method name, returns the override method modifier for that method, if it has
           one.

   Introspection
       Moose::Meta::Role->meta
           This will return a Class::MOP::Class instance for this class.

BUGS
       See "BUGS" in Moose for details on reporting bugs.

AUTHORS
       ·   Stevan Little <stevan.little AT iinteractive.com>

       ·   Dave Rolsky <autarch AT urth.org>

       ·   Jesse Luehrs <doy AT tozt.net>

       ·   Shawn M Moore <code AT sartak.org>

       ·   XXXX XXX'XX (Yuval Kogman) <nothingmuch AT woobling.org>

       ·   Karen Etheridge <ether AT cpan.org>

       ·   Florian Ragwitz <rafl AT debian.org>

       ·   Hans Dieter Pearcey <hdp AT weftsoar.net>

       ·   Chris Prather <chris AT prather.org>

       ·   Matt S Trout <mst AT shadowcat.uk>

COPYRIGHT AND LICENSE
       This software is copyright (c) 2006 by Infinity Interactive, Inc..

       This is free software; you can redistribute it and/or modify it under the same terms as
       the Perl 5 programming language system itself.



perl v5.20.1                                2014-09-25                     Moose::Meta::Role(3pm)


/man
rootr.net - man pages