Mouse::Meta::Class and Mouse::Meta::Role are now extensible by extends()
gfx [Fri, 2 Oct 2009 10:59:13 +0000 (19:59 +0900)]
lib/Mouse/Meta/Class.pm
lib/Mouse/Meta/Role.pm

index 4f811d9..5724ebf 100644 (file)
@@ -27,7 +27,7 @@ sub _construct_meta {
 
     my $self = bless \%args, ref($class) || $class;
     if($class ne __PACKAGE__){
-        $self->_initialize_object($self, \%args);
+        $self->meta->_initialize_object($self, \%args);
     }
     return $self;
 }
index ec08a5b..5d1c57f 100644 (file)
@@ -18,10 +18,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{