|
NAMEMouse::Role - The Mouse RoleVERSIONThis document describes Mouse version v2.5.10SYNOPSISpackage Comparable; use Mouse::Role; # the package is now a Mouse role # Declare methods that are required by this role requires qw(compare); # Define methods this role provides sub equals { my($self, $other) = @_; return $self->compare($other) == 0; } # and later package MyObject; use Mouse; with qw(Comparable); # Now MyObject can equals() sub compare { # ... } my $foo = MyObject->new(); my $bar = MyObject->new(); $obj->equals($bar); # yes, it is comparable DESCRIPTIONThis module declares the caller class to be a Mouse role.The concept of roles is documented in Moose::Manual::Roles. This document serves as API documentation. EXPORTED FUNCTIONSMouse::Role supports all of the functions that Mouse exports, but differs slightly in how some items are handled (see "CAVEATS" below for details).Mouse::Role also offers two role-specific keywords: "requires(@method_names)"Roles can require that certain methods are implemented by any class which "does" the role.Note that attribute accessors also count as methods for the purposes of satisfying the requirements of a role. "excludes(@role_names)"This is exported but not implemented in Mouse.IMPORT AND UNIMPORTimportImporting Mouse::Role will give you sugar. "-traits" are also supported.unimportPlease unimport ("no Mouse::Role") so that if someone calls one of the keywords (such as "has") it will break loudly instead breaking subtly.CAVEATSRole support has only a few caveats:
SEE ALSOMouseMoose::Role Moose::Manual::Roles Moose::Spec::Role
Visit the GSP FreeBSD Man Page Interface. |