Move method modifier manipulators into XS
[gitmo/Mouse.git] / lib / Mouse / Meta / Role.pm
index a52c12e..e1f3f71 100644 (file)
@@ -1,5 +1,5 @@
 package Mouse::Meta::Role;
-use Mouse::Util qw(:meta not_supported english_list); # enables strict and warnings
+use Mouse::Util qw(:meta not_supported); # enables strict and warnings
 
 use Mouse::Meta::Module;
 our @ISA = qw(Mouse::Meta::Module);
@@ -85,7 +85,7 @@ sub _check_required_methods{
             $role->throw_error(sprintf "'%s' requires the method%s %s to be implemented by '%s'",
                 $role->name,
                 (@missing == 1 ? '' : 's'), # method or methods
-                english_list(map{ sprintf q{'%s'}, $_ } @missing),
+                Mouse::Util::quoted_english_list(@missing),
                 $consumer_class_name);
         }
     }
@@ -255,37 +255,13 @@ sub combine {
     return $composite;
 }
 
-sub add_before_method_modifier {
-    my ($self, $method_name, $method) = @_;
+sub add_before_method_modifier;
+sub add_around_method_modifier;
+sub add_after_method_modifier;
 
-    push @{ $self->{before_method_modifiers}{$method_name} ||= [] }, $method;
-    return;
-}
-sub add_around_method_modifier {
-    my ($self, $method_name, $method) = @_;
-
-    push @{ $self->{around_method_modifiers}{$method_name} ||= [] }, $method;
-    return;
-}
-sub add_after_method_modifier {
-    my ($self, $method_name, $method) = @_;
-
-    push @{ $self->{after_method_modifiers}{$method_name} ||= [] }, $method;
-    return;
-}
-
-sub get_before_method_modifiers {
-    my ($self, $method_name) = @_;
-    return @{ $self->{before_method_modifiers}{$method_name} ||= [] }
-}
-sub get_around_method_modifiers {
-    my ($self, $method_name) = @_;
-    return @{ $self->{around_method_modifiers}{$method_name} ||= [] }
-}
-sub get_after_method_modifiers {
-    my ($self, $method_name) = @_;
-    return @{ $self->{after_method_modifiers}{$method_name} ||= [] }
-}
+sub get_before_method_modifiers;
+sub get_around_method_modifiers;
+sub get_after_method_modifiers;
 
 sub add_override_method_modifier{
     my($self, $method_name, $method) = @_;
@@ -330,7 +306,7 @@ Mouse::Meta::Role - The Mouse Role metaclass
 
 =head1 VERSION
 
-This document describes Mouse version 0.49
+This document describes Mouse version 0.50_03
 
 =head1 SEE ALSO