Fix Makefile.PL to use Mouse::Spec
[gitmo/Mouse.git] / Makefile.PL
index a54311c..81c3dfe 100755 (executable)
@@ -12,11 +12,15 @@ tests 't/*.t t/*/*.t';
 # > Fixed looks_like_number(undef) to return false for perl >= 5.009002
 requires 'Scalar::Util' => 1.14;
 
-build_requires 'Test::Exception' => 0.21;
-build_requires 'Test::More' => 0.80;
+test_requires 'Test::Exception' => 0.21;
+test_requires 'Test::More'      => 0.80;
 
 if ($Module::Install::AUTHOR) {
-    if (eval "package foo; use Moose; 1;") {
+    local @INC = ('lib', @INC);
+    require 'lib/Mouse/Spec.pm';
+    my $require_version = Mouse::Spec->MooseVersion;
+
+    if (eval{ require Moose; Moose->VERSION($require_version) }) {
         if (eval 'use Module::Install::AuthorTests; 1') {
             create_moose_compatibility_test();
             recursive_author_tests('xt');
@@ -24,7 +28,7 @@ if ($Module::Install::AUTHOR) {
             print "you don't have a M::I::AuthorTests.\n";
         }
     } else {
-        print "you don't have a moose. skipping moose compatibility test\n";
+        print "you don't have Moose $require_version. skipping moose compatibility test\n";
     }
     system("author/generate-mouse-tiny.pl");
 }
@@ -44,8 +48,6 @@ sub create_moose_compatibility_test {
     # some test does not pass... currently skip it.
     my %SKIP_TEST = (
         '016-trigger.t'    => "trigger's argument is incompatble :(",
-#        '020-load-class.t' => "&Moose::is_class_loaded doesn't exists",
-        '019-handles.t'    => 'incompatible',
         '029-new.t'        => 'Class->new(undef) incompatible',
         '010-isa-or.t'     => 'Mouse has a [BUG]',
         '044-attribute-metaclass.t' => 'Moose::Meta::Attribute does not have a "create"',
@@ -89,8 +91,8 @@ sub create_moose_compatibility_test {
                         close $rfh;
                         $s;
                     };
-                    $src =~ s/Mouse::is_class_loaded/Class::MOP::is_class_loaded/g;
-                    $src =~ s/Mouse::load_class/Class::MOP::load_class/g;
+                    $src =~ s/Mouse::(?:Util::)?is_class_loaded/Class::MOP::is_class_loaded/g;
+                    $src =~ s/Mouse::(?:Util::)?load_class/Class::MOP::load_class/g;
                     $src =~ s/Mouse/Moose/g;
                     $src;
                 };