[Bps-public-commit] r15144 - in Class-Load/trunk: . inc/Module
sartak at bestpractical.com
sartak at bestpractical.com
Wed Aug 13 20:33:22 EDT 2008
Author: sartak
Date: Wed Aug 13 20:33:21 2008
New Revision: 15144
Modified:
Class-Load/trunk/ (props changed)
Class-Load/trunk/inc/Module/Install.pm
Class-Load/trunk/inc/Module/Install/Base.pm
Class-Load/trunk/inc/Module/Install/Can.pm
Class-Load/trunk/inc/Module/Install/Fetch.pm
Class-Load/trunk/inc/Module/Install/Makefile.pm
Class-Load/trunk/inc/Module/Install/Metadata.pm
Class-Load/trunk/inc/Module/Install/Win32.pm
Class-Load/trunk/inc/Module/Install/WriteAll.pm
Log:
r69588 at onn: sartak | 2008-08-13 20:30:04 -0400
Back down to MI 0.70
Modified: Class-Load/trunk/inc/Module/Install.pm
==============================================================================
--- Class-Load/trunk/inc/Module/Install.pm (original)
+++ Class-Load/trunk/inc/Module/Install.pm Wed Aug 13 20:33:21 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: Class-Load/trunk/inc/Module/Install/Base.pm
==============================================================================
--- Class-Load/trunk/inc/Module/Install/Base.pm (original)
+++ Class-Load/trunk/inc/Module/Install/Base.pm Wed Aug 13 20:33:21 2008
@@ -1,7 +1,7 @@
#line 1
package Module::Install::Base;
-$VERSION = '0.75';
+$VERSION = '0.70';
# Suspend handler for "redefined" warnings
BEGIN {
Modified: Class-Load/trunk/inc/Module/Install/Can.pm
==============================================================================
--- Class-Load/trunk/inc/Module/Install/Can.pm (original)
+++ Class-Load/trunk/inc/Module/Install/Can.pm Wed Aug 13 20:33:21 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: Class-Load/trunk/inc/Module/Install/Fetch.pm
==============================================================================
--- Class-Load/trunk/inc/Module/Install/Fetch.pm (original)
+++ Class-Load/trunk/inc/Module/Install/Fetch.pm Wed Aug 13 20:33:21 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: Class-Load/trunk/inc/Module/Install/Makefile.pm
==============================================================================
--- Class-Load/trunk/inc/Module/Install/Makefile.pm (original)
+++ Class-Load/trunk/inc/Module/Install/Makefile.pm Wed Aug 13 20:33:21 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: Class-Load/trunk/inc/Module/Install/Metadata.pm
==============================================================================
--- Class-Load/trunk/inc/Module/Install/Metadata.pm (original)
+++ Class-Load/trunk/inc/Module/Install/Metadata.pm Wed Aug 13 20:33:21 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: Class-Load/trunk/inc/Module/Install/Win32.pm
==============================================================================
--- Class-Load/trunk/inc/Module/Install/Win32.pm (original)
+++ Class-Load/trunk/inc/Module/Install/Win32.pm Wed Aug 13 20:33:21 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: Class-Load/trunk/inc/Module/Install/WriteAll.pm
==============================================================================
--- Class-Load/trunk/inc/Module/Install/WriteAll.pm (original)
+++ Class-Load/trunk/inc/Module/Install/WriteAll.pm Wed Aug 13 20:33:21 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