X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMouse%2FMeta%2FMethod.pm;h=f800ff03294c2b9bdfd0863a62ea1a801ed1bdaa;hb=9010458d614641c8103b1d06b479e0c80aa1dcda;hp=21cff59d13fdc075efe641dd84686c97678b512d;hpb=612d3e1a65aebf8042df5972079695883a4eec6e;p=gitmo%2FMouse.git diff --git a/lib/Mouse/Meta/Method.pm b/lib/Mouse/Meta/Method.pm index 21cff59..f800ff0 100755 --- a/lib/Mouse/Meta/Method.pm +++ b/lib/Mouse/Meta/Method.pm @@ -1,23 +1,29 @@ package Mouse::Meta::Method; -use strict; -use warnings; - -use Mouse::Util qw(:meta); +use Mouse::Util qw(:meta); # enables strict and warnings use overload '&{}' => 'body', fallback => 1, ; -sub new{ - my($class, %args) = @_; +sub wrap{ + my $class = shift; + + return $class->_new(@_); +} + +sub _new{ + my $class = shift; + return $class->meta->new_object(@_) + if $class ne __PACKAGE__; - return bless \%args, $class; + return bless {@_}, $class; } -sub body { $_[0]->{body} } -sub name { $_[0]->{name} } -sub package_name{ $_[0]->{package} } +sub body { $_[0]->{body} } +sub name { $_[0]->{name} } +sub package_name { $_[0]->{package} } +sub associated_metaclass { $_[0]->{associated_metaclass} } sub fully_qualified_name { my $self = shift; @@ -25,15 +31,20 @@ sub fully_qualified_name { } 1; - __END__ =head1 NAME Mouse::Meta::Method - A Mouse Method metaclass +=head1 VERSION + +This document describes Mouse version 0.40 + =head1 SEE ALSO L +L + =cut