Apply a patch contributed by chocolateboy (RT #54383) to allow "use Mouse::Tiny VERSION"
[gitmo/Mouse.git] / tool / generate-mouse-tiny.pl
index 9eb5c76..045387d 100644 (file)
@@ -32,6 +32,7 @@ find({
             &&  /\.pm$/
             && !/Squirrel/
             && !/Tiny/
+            && !/Test/         # only for testing
             && !/Spec/         # has no functionality
             && !/TypeRegistry/ # deprecated
             && !/\bouse/       # ouse.pm
@@ -54,6 +55,8 @@ for my $file (uniq
     $contents =~ s/__END__\b.*//s;          # remove documentation
     $contents =~ s/1;\n*$//;                # remove success indicator
 
+    $contents =~ s{^( (?:[ ]{4})+ )}{ "\t" x (length($1) / 4) }xmsge; # spaces to tabs
+
     $mouse_tiny .= "BEGIN{ # $file\n";
     $mouse_tiny .= $contents;
     $mouse_tiny .= "}\n";
@@ -71,7 +74,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:
+# tell Perl we already have all of the Mouse files loaded:
 EOF
 
 for my $file (@files) {
@@ -93,28 +96,14 @@ END_OF_TINY
 } # unless Mouse.pm is loaded
 EOF
 
-print { $handle } << 'EOF';
+print { $handle } << "EOF";
 package Mouse::Tiny;
 
+our \$VERSION = '$Mouse::Spec::VERSION';
+
 Mouse::Exporter->setup_import_methods(also => 'Mouse');
 
 1;
-__END__
-
-=head1 NAME
-
-Mouse::Tiny - Mouse in a single file
-
-=head1 DESCRIPTION
-
-Mouse::Tiny is just Mouse itself, but it is in a single file.
-
-This is B<not> tiny. In fact, it requires a little more memory and time than Mouse.
-
-Use Mouse directly unless you know what you do.
-
-=cut
-
 EOF
 
 close $handle;