Switch to Mouse::Exporter
[gitmo/Mouse.git] / lib / Mouse / Meta / Role.pm
index 6deb58c..317adbc 100644 (file)
@@ -1,11 +1,8 @@
 package Mouse::Meta::Role;
-use strict;
-use warnings;
+use Mouse::Util qw(:meta not_supported english_list); # enables strict and warnings
 
-use Mouse::Util qw(not_supported english_list);
 use Mouse::Meta::Module;
-
-use base qw(Mouse::Meta::Module);
+our @ISA = qw(Mouse::Meta::Module);
 
 sub method_metaclass(){ 'Mouse::Meta::Role::Method' } # required for get_method()
 
@@ -19,10 +16,12 @@ sub _construct_meta {
     $args{required_methods} ||= [];
     $args{roles}            ||= [];
 
-#    return Mouse::Meta::Class->initialize($class)->new_object(%args)
-#        if $class ne __PACKAGE__;
+    my $self = bless \%args, ref($class) || $class;
+    if($class ne __PACKAGE__){
+        $self->meta->_initialize_object($self, \%args);
+    }
 
-    return bless \%args, ref($class) || $class;
+    return $self;
 }
 
 sub create_anon_role{
@@ -416,3 +415,14 @@ sub does_role {
 
 1;
 
+__END__
+
+=head1 NAME
+
+Mouse::Meta::Role - The Mouse Role metaclass
+
+=head1 SEE ALSO
+
+L<Moose::Meta::Role>
+
+=cut