package Mouse::Role;
use Mouse::Exporter; # enables strict and warnings
-our $VERSION = '0.74';
+our $VERSION = '0.84';
use Carp qw(confess);
use Scalar::Util qw(blessed);
-use Mouse::Util qw(not_supported);
-use Mouse::Meta::Role;
use Mouse ();
Mouse::Exporter->setup_import_methods(
}
sub excludes {
- not_supported;
+ Mouse::Util::not_supported();
}
sub init_meta{
=head1 VERSION
-This document describes Mouse version 0.74
+This document describes Mouse version 0.84
=head1 SYNOPSIS
- package MyRole;
- use Mouse::Role;
+ package 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
=head1 KEYWORDS