[Bps-public-commit] r15528 - in Path-Dispatcher/trunk: inc inc/Module inc/Module/Install

sartak at bestpractical.com sartak at bestpractical.com
Wed Aug 27 11:05:38 EDT 2008


Author: sartak
Date: Wed Aug 27 11:05:37 2008
New Revision: 15528

Modified:
   Path-Dispatcher/trunk/   (props changed)
   Path-Dispatcher/trunk/inc/   (props changed)
   Path-Dispatcher/trunk/inc/Module/Install.pm
   Path-Dispatcher/trunk/inc/Module/Install/Base.pm
   Path-Dispatcher/trunk/inc/Module/Install/Can.pm
   Path-Dispatcher/trunk/inc/Module/Install/Fetch.pm
   Path-Dispatcher/trunk/inc/Module/Install/Makefile.pm
   Path-Dispatcher/trunk/inc/Module/Install/Metadata.pm
   Path-Dispatcher/trunk/inc/Module/Install/Win32.pm
   Path-Dispatcher/trunk/inc/Module/Install/WriteAll.pm

Log:
 r70551 at onn:  sartak | 2008-08-27 11:03:25 -0400
 Downgrade MI to 0.70


Modified: Path-Dispatcher/trunk/inc/Module/Install.pm
==============================================================================
--- Path-Dispatcher/trunk/inc/Module/Install.pm	(original)
+++ Path-Dispatcher/trunk/inc/Module/Install.pm	Wed Aug 27 11:05:37 2008
@@ -30,11 +30,7 @@
 	# This is not enforced yet, but will be some time in the next few
 	# releases once we can make sure it won't clash with custom
 	# Module::Install extensions.
-	$VERSION = '0.75';
-
-	*inc::Module::Install::VERSION = *VERSION;
-	@inc::Module::Install::ISA     = __PACKAGE__;
-
+	$VERSION = '0.70';
 }
 
 
@@ -85,7 +81,7 @@
 
 # Build.PL was formerly supported, but no longer is due to excessive
 # difficulty in implementing every single feature twice.
-if ( $0 =~ /Build.PL$/i ) { die <<"END_DIE" }
+if ( $0 =~ /Build.PL$/i or -f 'Build.PL' ) { die <<"END_DIE" }
 
 Module::Install no longer supports Build.PL.
 
@@ -99,20 +95,14 @@
 
 
 
-# To save some more typing in Module::Install installers, every...
-# use inc::Module::Install
-# ...also acts as an implicit use strict.
-$^H |= strict::bits(qw(refs subs vars));
-
-
-
-
-
 use Cwd        ();
 use File::Find ();
 use File::Path ();
 use FindBin;
 
+*inc::Module::Install::VERSION = *VERSION;
+ at inc::Module::Install::ISA     = __PACKAGE__;
+
 sub autoload {
 	my $self = shift;
 	my $who  = $self->_caller;
@@ -155,7 +145,8 @@
 }
 
 sub preload {
-	my $self = shift;
+	my ($self) = @_;
+
 	unless ( $self->{extensions} ) {
 		$self->load_extensions(
 			"$self->{prefix}/$self->{path}", $self
@@ -211,7 +202,6 @@
 		$args{path}  =~ s!::!/!g;
 	}
 	$args{file}     ||= "$args{base}/$args{prefix}/$args{path}.pm";
-	$args{wrote}      = 0;
 
 	bless( \%args, $class );
 }
@@ -287,9 +277,9 @@
 		# correctly.  Otherwise, root through the file to locate the case-preserved
 		# version of the package name.
 		if ( $subpath eq lc($subpath) || $subpath eq uc($subpath) ) {
-			my $content = Module::Install::_read($subpath . '.pm');
-			my $in_pod  = 0;
-			foreach ( split //, $content ) {
+			open PKGFILE, "<$subpath.pm" or die "find_extensions: Can't open $subpath.pm: $!";
+			my $in_pod = 0;
+			while ( <PKGFILE> ) {
 				$in_pod = 1 if /^=\w/;
 				$in_pod = 0 if /^=cut/;
 				next if ($in_pod || /^=cut/);  # skip pod text
@@ -299,6 +289,7 @@
 					last;
 				}
 			}
+			close PKGFILE;
 		}
 
 		push @found, [ $file, $pkg ];
@@ -307,13 +298,6 @@
 	@found;
 }
 
-
-
-
-
-#####################################################################
-# Utility Functions
-
 sub _caller {
 	my $depth = 0;
 	my $call  = caller($depth);
@@ -324,30 +308,6 @@
 	return $call;
 }
 
-sub _read {
-	local *FH;
-	open FH, "< $_[0]" or die "open($_[0]): $!";
-	my $str = do { local $/; <FH> };
-	close FH or die "close($_[0]): $!";
-	return $str;
-}
-
-sub _write {
-	local *FH;
-	open FH, "> $_[0]" or die "open($_[0]): $!";
-	foreach ( 1 .. $#_ ) { print FH $_[$_] or die "print($_[0]): $!" }
-	close FH or die "close($_[0]): $!";
-}
-
-sub _version {
-	my $s = shift || 0;
-	   $s =~ s/^(\d+)\.?//;
-	my $l = $1 || 0;
-	my @v = map { $_ . '0' x (3 - length $_) } $s =~ /(\d{1,3})\D?/g;
-	   $l = $l . '.' . join '', @v if @v;
-	return $l + 0;
-}
-
 1;
 
 # Copyright 2008 Adam Kennedy.

Modified: Path-Dispatcher/trunk/inc/Module/Install/Base.pm
==============================================================================
--- Path-Dispatcher/trunk/inc/Module/Install/Base.pm	(original)
+++ Path-Dispatcher/trunk/inc/Module/Install/Base.pm	Wed Aug 27 11:05:37 2008
@@ -1,7 +1,7 @@
 #line 1
 package Module::Install::Base;
 
-$VERSION = '0.75';
+$VERSION = '0.70';
 
 # Suspend handler for "redefined" warnings
 BEGIN {

Modified: Path-Dispatcher/trunk/inc/Module/Install/Can.pm
==============================================================================
--- Path-Dispatcher/trunk/inc/Module/Install/Can.pm	(original)
+++ Path-Dispatcher/trunk/inc/Module/Install/Can.pm	Wed Aug 27 11:05:37 2008
@@ -11,7 +11,7 @@
 
 use vars qw{$VERSION $ISCORE @ISA};
 BEGIN {
-	$VERSION = '0.75';
+	$VERSION = '0.70';
 	$ISCORE  = 1;
 	@ISA     = qw{Module::Install::Base};
 }

Modified: Path-Dispatcher/trunk/inc/Module/Install/Fetch.pm
==============================================================================
--- Path-Dispatcher/trunk/inc/Module/Install/Fetch.pm	(original)
+++ Path-Dispatcher/trunk/inc/Module/Install/Fetch.pm	Wed Aug 27 11:05:37 2008
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION $ISCORE @ISA};
 BEGIN {
-	$VERSION = '0.75';
+	$VERSION = '0.70';
 	$ISCORE  = 1;
 	@ISA     = qw{Module::Install::Base};
 }

Modified: Path-Dispatcher/trunk/inc/Module/Install/Makefile.pm
==============================================================================
--- Path-Dispatcher/trunk/inc/Module/Install/Makefile.pm	(original)
+++ Path-Dispatcher/trunk/inc/Module/Install/Makefile.pm	Wed Aug 27 11:05:37 2008
@@ -7,7 +7,7 @@
 
 use vars qw{$VERSION $ISCORE @ISA};
 BEGIN {
-	$VERSION = '0.75';
+	$VERSION = '0.70';
 	$ISCORE  = 1;
 	@ISA     = qw{Module::Install::Base};
 }
@@ -63,18 +63,18 @@
 sub clean_files {
 	my $self  = shift;
 	my $clean = $self->makemaker_args->{clean} ||= {};
-	  %$clean = (
+	%$clean = (
 		%$clean, 
-		FILES => join ' ', grep { length $_ } ($clean->{FILES} || (), @_),
+		FILES => join(' ', grep length, $clean->{FILES}, @_),
 	);
 }
 
 sub realclean_files {
-	my $self      = shift;
+	my $self  = shift;
 	my $realclean = $self->makemaker_args->{realclean} ||= {};
-	  %$realclean = (
+	%$realclean = (
 		%$realclean, 
-		FILES => join ' ', grep { length $_ } ($realclean->{FILES} || (), @_),
+		FILES => join(' ', grep length, $realclean->{FILES}, @_),
 	);
 }
 
@@ -121,8 +121,8 @@
 	# Generate the 
 	my $args = $self->makemaker_args;
 	$args->{DISTNAME} = $self->name;
-	$args->{NAME}     = $self->module_name || $self->name;
-	$args->{VERSION}  = $self->version;
+	$args->{NAME}     = $self->module_name || $self->name || $self->determine_NAME($args);
+	$args->{VERSION}  = $self->version || $self->determine_VERSION($args);
 	$args->{NAME}     =~ s/-/::/g;
 	if ( $self->tests ) {
 		$args->{test} = { TESTS => $self->tests };

Modified: Path-Dispatcher/trunk/inc/Module/Install/Metadata.pm
==============================================================================
--- Path-Dispatcher/trunk/inc/Module/Install/Metadata.pm	(original)
+++ Path-Dispatcher/trunk/inc/Module/Install/Metadata.pm	Wed Aug 27 11:05:37 2008
@@ -6,31 +6,18 @@
 
 use vars qw{$VERSION $ISCORE @ISA};
 BEGIN {
-	$VERSION = '0.75';
+	$VERSION = '0.70';
 	$ISCORE  = 1;
 	@ISA     = qw{Module::Install::Base};
 }
 
 my @scalar_keys = qw{
-	name
-	module_name
-	abstract
-	author
-	version
-	license
-	distribution_type
-	perl_version
-	tests
-	installdirs
+	name module_name abstract author version license
+	distribution_type perl_version tests installdirs
 };
 
 my @tuple_keys = qw{
-	configure_requires
-	build_requires
-	requires
-	recommends
-	bundles
-	resources
+	configure_requires build_requires requires recommends bundles
 };
 
 sub Meta            { shift        }
@@ -46,77 +33,33 @@
 	};
 }
 
-sub requires {
-	my $self = shift;
-	while ( @_ ) {
-		my $module  = shift or last;
-		my $version = shift || 0;
-		push @{ $self->{values}->{requires} }, [ $module, $version ];
-	}
-	$self->{values}{requires};
-}
-
-sub build_requires {
-	my $self = shift;
-	while ( @_ ) {
-		my $module  = shift or last;
-		my $version = shift || 0;
-		push @{ $self->{values}->{build_requires} }, [ $module, $version ];
-	}
-	$self->{values}{build_requires};
-}
-
-sub configure_requires {
-	my $self = shift;
-	while ( @_ ) {
-		my $module  = shift or last;
-		my $version = shift || 0;
-		push @{ $self->{values}->{configure_requires} }, [ $module, $version ];
-	}
-	$self->{values}->{configure_requires};
-}
-
-sub recommends {
-	my $self = shift;
-	while ( @_ ) {
-		my $module  = shift or last;
-		my $version = shift || 0;
-		push @{ $self->{values}->{recommends} }, [ $module, $version ];
-	}
-	$self->{values}->{recommends};
-}
-
-sub bundles {
-	my $self = shift;
-	while ( @_ ) {
-		my $module  = shift or last;
-		my $version = shift || 0;
-		push @{ $self->{values}->{bundles} }, [ $module, $version ];
-	}
-	$self->{values}->{bundles};
-}
-
-# Resource handling
-sub resources {
-	my $self = shift;
-	while ( @_ ) {
-		my $resource = shift or last;
-		my $value    = shift or next;
-		push @{ $self->{values}->{resources} }, [ $resource, $value ];
-	}
-	$self->{values}->{resources};
-}
+foreach my $key (@tuple_keys) {
+	*$key = sub {
+		my $self = shift;
+		return $self->{values}{$key} unless @_;
 
-sub repository {
-	my $self = shift;
-	$self->resources( repository => shift );
-	return 1;
+		my @rv;
+		while (@_) {
+			my $module = shift or last;
+			my $version = shift || 0;
+			if ( $module eq 'perl' ) {
+				$version =~ s{^(\d+)\.(\d+)\.(\d+)}
+				             {$1 + $2/1_000 + $3/1_000_000}e;
+				$self->perl_version($version);
+				next;
+			}
+			my $rv = [ $module, $version ];
+			push @rv, $rv;
+		}
+		push @{ $self->{values}{$key} }, @rv;
+		@rv;
+	};
 }
 
 # Aliases for build_requires that will have alternative
 # meanings in some future version of META.yml.
-sub test_requires      { shift->build_requires(@_) }
-sub install_requires   { shift->build_requires(@_) }
+sub test_requires      { shift->build_requires(@_)  }
+sub install_requires   { shift->build_requires(@_)  }
 
 # Aliases for installdirs options
 sub install_as_core    { $_[0]->installdirs('perl')   }
@@ -137,7 +80,7 @@
 		warn "You MUST provide an explicit true/false value to dynamic_config, skipping\n";
 		return $self;
 	}
-	$self->{values}{dynamic_config} = $_[0] ? 1 : 0;
+	$self->{'values'}{'dynamic_config'} = $_[0] ? 1 : 0;
 	return $self;
 }
 
@@ -152,21 +95,19 @@
 		die "all_from: cannot find $file from $name" unless -e $file;
 	}
 
-	# Some methods pull from POD instead of code.
-	# If there is a matching .pod, use that instead
-	my $pod = $file;
-	$pod =~ s/\.pm$/.pod/i;
-	$pod = $file unless -e $pod;
-
-	# Pull the different values
-	$self->name_from($file)         unless $self->name;
 	$self->version_from($file)      unless $self->version;
 	$self->perl_version_from($file) unless $self->perl_version;
-	$self->author_from($pod)        unless $self->author;
-	$self->license_from($pod)       unless $self->license;
-	$self->abstract_from($pod)      unless $self->abstract;
 
-	return 1;
+	# The remaining probes read from POD sections; if the file
+	# has an accompanying .pod, use that instead
+	my $pod = $file;
+	if ( $pod =~ s/\.pm$/.pod/i and -e $pod ) {
+		$file = $pod;
+	}
+
+	$self->author_from($file)   unless $self->author;
+	$self->license_from($file)  unless $self->license;
+	$self->abstract_from($file) unless $self->abstract;
 }
 
 sub provides {
@@ -242,10 +183,10 @@
 
 sub read {
 	my $self = shift;
-	$self->include_deps( 'YAML::Tiny', 0 );
+	$self->include_deps( 'YAML', 0 );
 
-	require YAML::Tiny;
-	my $data = YAML::Tiny::LoadFile('META.yml');
+	require YAML;
+	my $data = YAML::LoadFile('META.yml');
 
 	# Call methods explicitly in case user has already set some values.
 	while ( my ( $key, $value ) = each %$data ) {
@@ -285,51 +226,35 @@
 	 );
 }
 
-# Add both distribution and module name
-sub name_from {
-	my ($self, $file) = @_;
-	if (
-		Module::Install::_read($file) =~ m/
-		^ \s*
-		package \s*
-		([\w:]+)
-		\s* ;
-		/ixms
-	) {
-		my ($name, $module_name) = ($1, $1);
-		$name =~ s{::}{-}g;
-		$self->name($name);
-		unless ( $self->module_name ) {
-			$self->module_name($module_name);
-		}
-	} else {
-		die "Cannot determine name from $file\n";
-	}
+sub _slurp {
+	local *FH;
+	open FH, "< $_[1]" or die "Cannot open $_[1].pod: $!";
+	do { local $/; <FH> };
 }
 
 sub perl_version_from {
-	my $self = shift;
+	my ( $self, $file ) = @_;
 	if (
-		Module::Install::_read($_[0]) =~ m/
+		$self->_slurp($file) =~ m/
 		^
-		(?:use|require) \s*
+		use \s*
 		v?
 		([\d_\.]+)
 		\s* ;
 		/ixms
 	) {
-		my $perl_version = $1;
-		$perl_version =~ s{_}{}g;
-		$self->perl_version($perl_version);
+		my $v = $1;
+		$v =~ s{_}{}g;
+		$self->perl_version($1);
 	} else {
-		warn "Cannot determine perl version info from $_[0]\n";
+		warn "Cannot determine perl version info from $file\n";
 		return;
 	}
 }
 
 sub author_from {
-	my $self    = shift;
-	my $content = Module::Install::_read($_[0]);
+	my ( $self, $file ) = @_;
+	my $content = $self->_slurp($file);
 	if ($content =~ m/
 		=head \d \s+ (?:authors?)\b \s*
 		([^\n]*)
@@ -343,14 +268,15 @@
 		$author =~ s{E<gt>}{>}g;
 		$self->author($author);
 	} else {
-		warn "Cannot determine author info from $_[0]\n";
+		warn "Cannot determine author info from $file\n";
 	}
 }
 
 sub license_from {
-	my $self = shift;
+	my ( $self, $file ) = @_;
+
 	if (
-		Module::Install::_read($_[0]) =~ m/
+		$self->_slurp($file) =~ m/
 		(
 			=head \d \s+
 			(?:licen[cs]e|licensing|copyright|legal)\b
@@ -377,7 +303,7 @@
 			$pattern =~ s{\s+}{\\s+}g;
 			if ( $license_text =~ /\b$pattern\b/i ) {
 				if ( $osi and $license_text =~ /All rights reserved/i ) {
-					print "WARNING: 'All rights reserved' in copyright may invalidate Open Source license.\n";
+					warn "LEGAL WARNING: 'All rights reserved' may invalidate Open Source licenses. Consider removing it.";
 				}
 				$self->license($license);
 				return 1;
@@ -385,23 +311,8 @@
 		}
 	}
 
-	warn "Cannot determine license info from $_[0]\n";
+	warn "Cannot determine license info from $file\n";
 	return 'unknown';
 }
 
-sub install_script {
-	my $self = shift;
-	my $args = $self->makemaker_args;
-	my $exe  = $args->{EXE_FILES} ||= [];
-        foreach ( @_ ) {
-		if ( -f $_ ) {
-			push @$exe, $_;
-		} elsif ( -d 'script' and -f "script/$_" ) {
-			push @$exe, "script/$_";
-		} else {
-			die "Cannot find script '$_'";
-		}
-	}
-}
-
 1;

Modified: Path-Dispatcher/trunk/inc/Module/Install/Win32.pm
==============================================================================
--- Path-Dispatcher/trunk/inc/Module/Install/Win32.pm	(original)
+++ Path-Dispatcher/trunk/inc/Module/Install/Win32.pm	Wed Aug 27 11:05:37 2008
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '0.75';
+	$VERSION = '0.70';
 	@ISA     = qw{Module::Install::Base};
 	$ISCORE  = 1;
 }

Modified: Path-Dispatcher/trunk/inc/Module/Install/WriteAll.pm
==============================================================================
--- Path-Dispatcher/trunk/inc/Module/Install/WriteAll.pm	(original)
+++ Path-Dispatcher/trunk/inc/Module/Install/WriteAll.pm	Wed Aug 27 11:05:37 2008
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '0.75';
+	$VERSION = '0.70';
 	@ISA     = qw{Module::Install::Base};
 	$ISCORE  = 1;
 }



More information about the Bps-public-commit mailing list