Fix compatibility issue on Ark
[gitmo/Mouse.git] / lib / Mouse / Meta / Role.pm
index f29dae0..87aaa8e 100644 (file)
@@ -2,13 +2,23 @@ package Mouse::Meta::Role;
 use strict;
 use warnings;
 
-use Mouse::Util qw(not_supported english_list);
+use Mouse::Util qw(:meta not_supported english_list get_code_info);
 use Mouse::Meta::Module;
-
-use base qw(Mouse::Meta::Module);
+our @ISA = qw(Mouse::Meta::Module);
 
 sub method_metaclass(){ 'Mouse::Meta::Role::Method' } # required for get_method()
 
+# XXX: for backward compatibility
+my %foreign = map{ $_ => undef } qw(Mouse::Role Carp Scalar::Util UNIVERSAL);
+sub _code_is_mine{
+    my($self, $code) = @_;
+
+    my($package, $name) = get_code_info($code);
+
+    return $package && !exists $foreign{$package};
+}
+
+
 sub _construct_meta {
     my $class = shift;
 
@@ -41,8 +51,7 @@ sub get_required_method_list{
 }
 
 sub add_required_methods {
-    my $self = shift;
-    my @methods = @_;
+    my($self, @methods) = @_;
     push @{$self->{required_methods}}, @methods;
 }
 
@@ -417,3 +426,14 @@ sub does_role {
 
 1;
 
+__END__
+
+=head1 NAME
+
+Mouse::Meta::Role - The Mouse Role metaclass
+
+=head1 SEE ALSO
+
+L<Moose::Meta::Role>
+
+=cut