X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=gitmo%2FMouse.git;a=blobdiff_plain;f=lib%2FMouse%2FMeta%2FMethod.pm;h=be03cfff22ded26be6df1dae179c394d7cf169d8;hp=f800ff03294c2b9bdfd0863a62ea1a801ed1bdaa;hb=e128626c409797822ffd8a4079f833eb3dc0fd37;hpb=9010458d614641c8103b1d06b479e0c80aa1dcda diff --git a/lib/Mouse/Meta/Method.pm b/lib/Mouse/Meta/Method.pm index f800ff0..be03cff 100755 --- a/lib/Mouse/Meta/Method.pm +++ b/lib/Mouse/Meta/Method.pm @@ -2,7 +2,7 @@ package Mouse::Meta::Method; use Mouse::Util qw(:meta); # enables strict and warnings use overload - '&{}' => 'body', + '&{}' => sub{ $_[0]->body }, fallback => 1, ; @@ -13,11 +13,13 @@ sub wrap{ } sub _new{ - my $class = shift; - return $class->meta->new_object(@_) - if $class ne __PACKAGE__; + my($class, %args) = @_; + my $self = bless \%args, $class; - return bless {@_}, $class; + if($class ne __PACKAGE__){ + $self->meta->_initialize_object($self, \%args); + } + return $self; } sub body { $_[0]->{body} } @@ -26,7 +28,7 @@ sub package_name { $_[0]->{package} } sub associated_metaclass { $_[0]->{associated_metaclass} } sub fully_qualified_name { - my $self = shift; + my($self) = @_; return $self->package_name . '::' . $self->name; } @@ -39,7 +41,7 @@ Mouse::Meta::Method - A Mouse Method metaclass =head1 VERSION -This document describes Mouse version 0.40 +This document describes Mouse version 0.50_01 =head1 SEE ALSO