Include Mouse::PurePerl first
[gitmo/Mouse.git] / author / generate-mouse-tiny.pl
index 9e4120d..0fd1963 100755 (executable)
@@ -2,9 +2,22 @@
 use strict;
 use warnings;
 use File::Find;
-use File::Slurp 'slurp';
-use List::MoreUtils 'uniq';
-use autodie;
+use Fatal qw(open close);
+#use File::Slurp 'slurp';
+#use List::MoreUtils 'uniq';
+#use autodie;
+
+print "Generate Mouse::Tiny ...\n";
+
+sub slurp {
+    open my $in, '<', $_[0];
+    local $/;
+    return scalar <$in>;
+}
+sub uniq{
+    my %seen;
+    return grep{ !$seen{$_}++ } @_;
+}
 
 require 'lib/Mouse/Spec.pm';
 
@@ -29,6 +42,7 @@ find({
 my $mouse_tiny = '';
 
 for my $file (uniq
+        'lib/Mouse/PurePerl.pm',
         'lib/Mouse/Exporter.pm',
         'lib/Mouse/Util.pm',
         'lib/Mouse/Meta/TypeConstraint.pm',
@@ -57,6 +71,7 @@ EOF
 print { $handle } << 'EOF';
 # if regular Mouse is loaded, bail out
 unless ($INC{'Mouse.pm'}) {
+    # tell Perl we already have all of the Mouse files loaded:
 EOF
 
 for my $file (@files) {
@@ -66,8 +81,6 @@ for my $file (@files) {
 
 print { $handle } << 'EOF';
 eval sprintf("#line %d %s\n", __LINE__, __FILE__) . <<'END_OF_TINY';
-
-# tell Perl we already have all of the Mouse files loaded:
 EOF
 
 print { $handle } "\n# and now their contents\n\n";
@@ -89,3 +102,5 @@ Mouse::Exporter->setup_import_methods(also => 'Mouse');
 EOF
 
 close $handle;
+
+print "done.\n";