Moose::Meta::Role - The Moose Role metaclass
version 2.2201
This class is a subclass of the Class::MOP::Module manpage that provides
additional Moose-specific functionality.
Its API looks a lot like the Moose::Meta::Class manpage, but internally it
implements many things differently. This may change in the future.
Moose::Meta::Role is a subclass of the Class::MOP::Module manpage.
This method creates a new role object with the provided name.
This method accepts a list of array references. Each array reference
should contain a role name or the Moose::Meta::Role manpage 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 the Moose::Meta::Role::Composite manpage that
represents the combined roles.
When combining multiple roles using combine , this method is used to obtain a
list of role names to be applied to the the Moose::Meta::Role::Composite manpage
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.
This method is identical to the the Moose::Meta::Class manpage create
method.
This method is identical to the the Moose::Meta::Class manpage
create_anon_class method.
Returns true if the role is an anonymous role.
Returns a list of names of classes and roles which consume this role.
This method applies a role to the given $thing . That can be another
the Moose::Meta::Role manpage, object, a the Moose::Meta::Class manpage object, or a
(non-meta) object instance.
The options are passed directly to the constructor for the appropriate
the Moose::Meta::Role::Application manpage subclass.
Note that this will apply the role even if the $thing in question already
does this role. does_role in the Moose::Util manpage is a convenient wrapper for
finding out if role application is necessary.
This returns an array reference of roles which this role does. This
list may include duplicates.
This returns a unique list of all roles that this role does, and
all the roles that its roles do.
Given a role name or the Moose::Meta::Role manpage object, returns true if this role
does the given role.
Given a the Moose::Meta::Role manpage object, this adds the role to the list of
roles that the role does.
Returns a list of role names which this role excludes.
Given a role name, returns true if this role excludes the named
role.
Given one or more role names, adds those roles to the list of excluded
roles.
The methods for dealing with a role's methods are all identical in API
and behavior to the same methods in the Class::MOP::Class manpage.
Returns the method metaclass name for the role. This defaults to
the Moose::Meta::Role::Method manpage.
These methods are all identical to the methods of the same name in
the Class::MOP::Package manpage
As with methods, the methods for dealing with a role's attribute are
all identical in API and behavior to the same methods in
the Class::MOP::Class manpage.
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.
The methods for dealing with a role's overloads are all identical in API and
behavior to the same methods in the Class::MOP::Class manpage.
Returns the list of methods required by the role.
Returns true if the role requires the named method.
Adds the named methods to the role's list of required methods.
Removes the named methods from the role's list of required methods.
Instantiate the parameters as a the Moose::Meta::Role::Method::Conflicting manpage
object, then add it to the required method list.
These methods act like their counterparts in the Class::MOP::Class manpage and
the Moose::Meta::Class manpage.
However, method modifiers are simply stored internally, and are not applied
until the role itself is applied to a class or object.
These methods all add an appropriate modifier to the internal list of
modifiers.
Return true if the role has any modifiers of the given type.
Given a method name, returns a list of the appropriate modifiers for
that method.
Given a method name, returns the override method modifier for that
method, if it has one.
This will return a the Class::MOP::Class manpage instance for this class.
See Moose/BUGS for details on reporting bugs.
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.
|