diff options
author | doy <doy@tozt.net> | 2009-04-10 02:10:53 -0500 |
---|---|---|
committer | doy <doy@tozt.net> | 2009-04-10 02:10:53 -0500 |
commit | 9c80a3d3f83f9d7f09d001564d6352238e871ebf (patch) | |
tree | 760a5f76c043c9f3599a48fa984f82ee9b5ed125 /lib | |
parent | 32e195a50b6e424b333d1e2ac94852f0e4a40c8e (diff) | |
download | moosex-nonmoose-9c80a3d3f83f9d7f09d001564d6352238e871ebf.tar.gz moosex-nonmoose-9c80a3d3f83f9d7f09d001564d6352238e871ebf.zip |
add a few comments
Diffstat (limited to 'lib')
-rw-r--r-- | lib/MooseX/NonMoose.pm | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/MooseX/NonMoose.pm b/lib/MooseX/NonMoose.pm index b03c2cd..db2e385 100644 --- a/lib/MooseX/NonMoose.pm +++ b/lib/MooseX/NonMoose.pm @@ -20,9 +20,15 @@ sub extends_nonmoose { $meta->add_method(new => sub { my $class = shift; my $meta = Class::MOP::Class->initialize($class); + + # we need to get the non-moose constructor from the superclass + # of the class where this method actually exists my $caller_meta = Class::MOP::Class->initialize($caller); my $super_new = $caller_meta->find_next_method_by_name('new'); + # but we need to call it as a method on the class we're actually + # trying to instantiate my $self = $super_new->execute($class, @_); + my $params = $class->BUILDARGS(@_); my $moose_self = $meta->new_object( __INSTANCE__ => $self, |