)],
groups => {
default => [], # export no functions by default
+
+ # The ':meta' group is 'use metaclass' for Mouse
meta => [qw(does meta dump _MOUSE_VERBOSE)],
},
_export_to_main => 1,
}
my $role_name = $roles[-1][0];
load_class($role_name);
+
my $metarole = get_metaclass_by_name($role_name);
( $metarole && $metarole->isa('Mouse::Meta::Role') )
|| $applicant->meta->throw_error("You can only consume roles, $role_name(".$role_name->meta.") is not a Mouse role");
Carp::confess("Mouse does not currently support $feature");
}
-sub meta{
+# general meta() method
+sub meta :method{
return Mouse::Meta::Class->initialize(ref($_[0]) || $_[0]);
}
-sub dump {
+# general dump() method
+sub dump :method {
my($self, $maxdepth) = @_;
require 'Data/Dumper.pm'; # we don't want to create its namespace
return $dd->Dump();
}
+# general does() method
sub does :method;
*does = \&does_role; # alias