X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=gitmo%2FMouse.git;a=blobdiff_plain;f=lib%2FMouse%2FRole.pm;h=e53824770527f5cf37d40440f9ac397741d27914;hp=4a9a08b071b032e1b04ea505d99372e2bc23bb49;hb=fc0e0bbda277a99354170a4b8de6eb1275920555;hpb=c2f128e7c8795ef8115bbfe99aae1f19960903e8 diff --git a/lib/Mouse/Role.pm b/lib/Mouse/Role.pm index 4a9a08b..e538247 100644 --- a/lib/Mouse/Role.pm +++ b/lib/Mouse/Role.pm @@ -23,13 +23,31 @@ do { } }, before => sub { - return sub { } + my $caller = $CALLER; + return sub { + my $code = pop; + for (@_) { + $caller->meta->add_before_method_modifier($_ => $code); + } + } }, after => sub { - return sub { } + my $caller = $CALLER; + return sub { + my $code = pop; + for (@_) { + $caller->meta->add_before_method_modifier($_ => $code); + } + } }, around => sub { - return sub { } + my $caller = $CALLER; + return sub { + my $code = pop; + for (@_) { + $caller->meta->add_before_method_modifier($_ => $code); + } + } }, has => sub { my $caller = $CALLER;