projects
/
gitmo/Mouse.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
Add calculate_all_roles() to Meta::Class/Meta::Role
[gitmo/Mouse.git]
/
lib
/
Mouse
/
Meta
/
Class.pm
diff --git
a/lib/Mouse/Meta/Class.pm
b/lib/Mouse/Meta/Class.pm
index
7b40497
..
167f4b9
100644
(file)
--- a/
lib/Mouse/Meta/Class.pm
+++ b/
lib/Mouse/Meta/Class.pm
@@
-44,6
+44,13
@@
sub is_anon_class{
sub roles { $_[0]->{roles} }
+sub calculate_all_roles {
+ my $self = shift;
+ my %seen;
+ return grep { !$seen{ $_->name }++ }
+ map { $_->calculate_all_roles } @{ $self->roles };
+}
+
sub superclasses {
my $self = shift;