Implement get_all_attributes in XS
[gitmo/Mouse.git] / lib / Mouse / PurePerl.pm
index 9c39b72..1dbb7ab 100644 (file)
@@ -1,5 +1,7 @@
 package Mouse::PurePerl;
 
+require Mouse::Util;
+
 package
     Mouse::Util;
 
@@ -209,6 +211,12 @@ sub roles { $_[0]->{roles} }
 
 sub linearized_isa { @{ get_linear_isa($_[0]->{package}) } }
 
+sub get_all_attributes {
+    my($self) = @_;
+    my %attrs = map { %{ $self->initialize($_)->_attribute_map } } reverse $self->linearized_isa;
+    return values %attrs;
+}
+
 package
     Mouse::Meta::Role;
 
@@ -340,7 +348,7 @@ Mouse::PurePerl - A Mouse guts in pure Perl
 
 =head1 VERSION
 
-This document describes Mouse version 0.40_04
+This document describes Mouse version 0.40_05
 
 =head1 SEE ALSO