table of contents
UR::Role::Prototype(3pm) | User Contributed Perl Documentation | UR::Role::Prototype(3pm) |
NAME¶
UR::Role::Prototype - Implementation for defining and composing roles
DESCRIPTION¶
Basic info about using roles is described in the documentation for UR::Role.
When a role is defined using the "role" keyword, it creates a UR::Role::Prototype instance. Role prototypes represent an uncomposed role. They have most of the same properties as UR::Object::Type instances.
Methods¶
- property_data($property_name)
- Returns a hashref of property data about the named property.
- has_property_names()
- Returns a list of all the properties named in the role's "has".
- id_by_property_names()
- Returns a list of all the properties named in the roles's "id_by".
- method_names()
- Returns a list of all the function names in the role's namespace.
- define(%role_definition)
- Define a role and return the role prototype.
- role_name()
- Return the name of the role.
- class_names()
- Returns a list of the names of the classes composing this role.
- requires()
- Returns an arrayref of strings. These strings must exist in composing classes, either as properties or methods.
- excludes()
- Returns an arrayref of role names that may not be composed with this role.
Role namespace methods¶
When a role is defined, these methods are injected into the role's namespace
- create(%params)
- Return a UR::Role::PrototypeWithParams object representing this role with a set of params immediately before it is composed into a class. See the section on Parameterized Roles in UR::Role.
- __role__()
- Calls the above create() method with no arguments. This is used by the role composition mechanism to trigger autoloading the role's module when role names are given as strings in a class definition.
SEE ALSO¶
UR, UR::Object::Type::Initializer, UR::Role::Instance, UR::Role::PrototypeWithParams
2024-06-15 | perl v5.38.2 |