r55058 - in /branches/upstream/libmoosex-types-structured-perl/current: ./ inc/Module/ inc/Module/Install/ lib/MooseX/Meta/TypeConstraint/ lib/MooseX/Types/ t/

gregoa at users.alioth.debian.org gregoa at users.alioth.debian.org
Mon Mar 29 20:06:48 UTC 2010


Author: gregoa
Date: Mon Mar 29 20:06:41 2010
New Revision: 55058

URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=55058
Log:
[svn-upgrade] Integrating new upstream version, libmoosex-types-structured-perl (0.21)

Modified:
    branches/upstream/libmoosex-types-structured-perl/current/Changes
    branches/upstream/libmoosex-types-structured-perl/current/META.yml
    branches/upstream/libmoosex-types-structured-perl/current/README
    branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install.pm
    branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/AutoInstall.pm
    branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/Base.pm
    branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/Can.pm
    branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/Fetch.pm
    branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/Include.pm
    branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/Makefile.pm
    branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/Metadata.pm
    branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/Win32.pm
    branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/WriteAll.pm
    branches/upstream/libmoosex-types-structured-perl/current/lib/MooseX/Meta/TypeConstraint/Structured.pm
    branches/upstream/libmoosex-types-structured-perl/current/lib/MooseX/Types/Structured.pm
    branches/upstream/libmoosex-types-structured-perl/current/t/04-map.t

Modified: branches/upstream/libmoosex-types-structured-perl/current/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-types-structured-perl/current/Changes?rev=55058&op=diff
==============================================================================
--- branches/upstream/libmoosex-types-structured-perl/current/Changes (original)
+++ branches/upstream/libmoosex-types-structured-perl/current/Changes Mon Mar 29 20:06:41 2010
@@ -1,4 +1,8 @@
 Revision history for MooseX-Types-Structured
+
+0.21   26 March 2010
+        - Removed unneed module from test
+	- additional contributed documentation fixes
 
 0.20   04 February 2010
         - Add a new Map type. (Ricardo SIGNES)

Modified: branches/upstream/libmoosex-types-structured-perl/current/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-types-structured-perl/current/META.yml?rev=55058&op=diff
==============================================================================
--- branches/upstream/libmoosex-types-structured-perl/current/META.yml (original)
+++ branches/upstream/libmoosex-types-structured-perl/current/META.yml Mon Mar 29 20:06:41 2010
@@ -1,6 +1,7 @@
 ---
 abstract: 'Moose Type Constraint classes for Structured Types'
 author:
+  - 'John Napiorkowski <jjnapiork at cpan.org>'
   - 'John Napiorkowski <jjnapiork at cpan.org>'
 build_requires:
   ExtUtils::MakeMaker: 6.42
@@ -9,7 +10,7 @@
 configure_requires:
   ExtUtils::MakeMaker: 6.42
 distribution_type: module
-generated_by: 'Module::Install version 0.92'
+generated_by: 'Module::Install version 0.95'
 license: perl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -27,4 +28,4 @@
   perl: 5.8.0
 resources:
   license: http://dev.perl.org/licenses/
-version: 0.20
+version: 0.21

Modified: branches/upstream/libmoosex-types-structured-perl/current/README
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-types-structured-perl/current/README?rev=55058&op=diff
==============================================================================
--- branches/upstream/libmoosex-types-structured-perl/current/README (original)
+++ branches/upstream/libmoosex-types-structured-perl/current/README Mon Mar 29 20:06:41 2010
@@ -110,7 +110,7 @@
 
   Comparing Parameterized types to Structured types
     Parameterized constraints are built into core Moose and you are probably
-    already familar with the type constraints 'HashRef' and 'ArrayRef'.
+    already familiar with the type constraints 'HashRef' and 'ArrayRef'.
     Structured types have similar functionality, so their syntax is likewise
     similar. For example, you could define a parameterized constraint like:
 

Modified: branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install.pm?rev=55058&op=diff
==============================================================================
--- branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install.pm (original)
+++ branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install.pm Mon Mar 29 20:06:41 2010
@@ -19,6 +19,10 @@
 
 use 5.005;
 use strict 'vars';
+use Cwd        ();
+use File::Find ();
+use File::Path ();
+use FindBin;
 
 use vars qw{$VERSION $MAIN};
 BEGIN {
@@ -28,7 +32,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.92';
+	$VERSION = '0.95';
 
 	# Storage for the pseudo-singleton
 	$MAIN    = undef;
@@ -38,18 +42,25 @@
 
 }
 
-
-
-
-
-# Whether or not inc::Module::Install is actually loaded, the
-# $INC{inc/Module/Install.pm} is what will still get set as long as
-# the caller loaded module this in the documented manner.
-# If not set, the caller may NOT have loaded the bundled version, and thus
-# they may not have a MI version that works with the Makefile.PL. This would
-# result in false errors or unexpected behaviour. And we don't want that.
-my $file = join( '/', 'inc', split /::/, __PACKAGE__ ) . '.pm';
-unless ( $INC{$file} ) { die <<"END_DIE" }
+sub import {
+	my $class = shift;
+	my $self  = $class->new(@_);
+	my $who   = $self->_caller;
+
+	#-------------------------------------------------------------
+	# all of the following checks should be included in import(),
+	# to allow "eval 'require Module::Install; 1' to test
+	# installation of Module::Install. (RT #51267)
+	#-------------------------------------------------------------
+
+	# Whether or not inc::Module::Install is actually loaded, the
+	# $INC{inc/Module/Install.pm} is what will still get set as long as
+	# the caller loaded module this in the documented manner.
+	# If not set, the caller may NOT have loaded the bundled version, and thus
+	# they may not have a MI version that works with the Makefile.PL. This would
+	# result in false errors or unexpected behaviour. And we don't want that.
+	my $file = join( '/', 'inc', split /::/, __PACKAGE__ ) . '.pm';
+	unless ( $INC{$file} ) { die <<"END_DIE" }
 
 Please invoke ${\__PACKAGE__} with:
 
@@ -61,26 +72,28 @@
 
 END_DIE
 
-
-
-
-
-# If the script that is loading Module::Install is from the future,
-# then make will detect this and cause it to re-run over and over
-# again. This is bad. Rather than taking action to touch it (which
-# is unreliable on some platforms and requires write permissions)
-# for now we should catch this and refuse to run.
-if ( -f $0 ) {
-	my $s = (stat($0))[9];
-
-	# If the modification time is only slightly in the future,
-	# sleep briefly to remove the problem.
-	my $a = $s - time;
-	if ( $a > 0 and $a < 5 ) { sleep 5 }
-
-	# Too far in the future, throw an error.
-	my $t = time;
-	if ( $s > $t ) { die <<"END_DIE" }
+	# This reportedly fixes a rare Win32 UTC file time issue, but
+	# as this is a non-cross-platform XS module not in the core,
+	# we shouldn't really depend on it. See RT #24194 for detail.
+	# (Also, this module only supports Perl 5.6 and above).
+	eval "use Win32::UTCFileTime" if $^O eq 'MSWin32' && $] >= 5.006;
+
+	# If the script that is loading Module::Install is from the future,
+	# then make will detect this and cause it to re-run over and over
+	# again. This is bad. Rather than taking action to touch it (which
+	# is unreliable on some platforms and requires write permissions)
+	# for now we should catch this and refuse to run.
+	if ( -f $0 ) {
+		my $s = (stat($0))[9];
+
+		# If the modification time is only slightly in the future,
+		# sleep briefly to remove the problem.
+		my $a = $s - time;
+		if ( $a > 0 and $a < 5 ) { sleep 5 }
+
+		# Too far in the future, throw an error.
+		my $t = time;
+		if ( $s > $t ) { die <<"END_DIE" }
 
 Your installer $0 has a modification time in the future ($s > $t).
 
@@ -89,15 +102,12 @@
 Please correct this, then run $0 again.
 
 END_DIE
-}
-
-
-
-
-
-# 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" }
+	}
+
+
+	# 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" }
 
 Module::Install no longer supports Build.PL.
 
@@ -107,23 +117,36 @@
 
 END_DIE
 
-
-
-
-
-# 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;
+	#-------------------------------------------------------------
+
+	# 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));
+
+	#-------------------------------------------------------------
+
+	unless ( -f $self->{file} ) {
+		require "$self->{path}/$self->{dispatch}.pm";
+		File::Path::mkpath("$self->{prefix}/$self->{author}");
+		$self->{admin} = "$self->{name}::$self->{dispatch}"->new( _top => $self );
+		$self->{admin}->init;
+		@_ = ($class, _self => $self);
+		goto &{"$self->{name}::import"};
+	}
+
+	*{"${who}::AUTOLOAD"} = $self->autoload;
+	$self->preload;
+
+	# Unregister loader and worker packages so subdirs can use them again
+	delete $INC{"$self->{file}"};
+	delete $INC{"$self->{path}.pm"};
+
+	# Save to the singleton
+	$MAIN = $self;
+
+	return 1;
+}
 
 sub autoload {
 	my $self = shift;
@@ -152,33 +175,6 @@
 	};
 }
 
-sub import {
-	my $class = shift;
-	my $self  = $class->new(@_);
-	my $who   = $self->_caller;
-
-	unless ( -f $self->{file} ) {
-		require "$self->{path}/$self->{dispatch}.pm";
-		File::Path::mkpath("$self->{prefix}/$self->{author}");
-		$self->{admin} = "$self->{name}::$self->{dispatch}"->new( _top => $self );
-		$self->{admin}->init;
-		@_ = ($class, _self => $self);
-		goto &{"$self->{name}::import"};
-	}
-
-	*{"${who}::AUTOLOAD"} = $self->autoload;
-	$self->preload;
-
-	# Unregister loader and worker packages so subdirs can use them again
-	delete $INC{"$self->{file}"};
-	delete $INC{"$self->{path}.pm"};
-
-	# Save to the singleton
-	$MAIN = $self;
-
-	return 1;
-}
-
 sub preload {
 	my $self = shift;
 	unless ( $self->{extensions} ) {

Modified: branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/AutoInstall.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/AutoInstall.pm?rev=55058&op=diff
==============================================================================
--- branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/AutoInstall.pm (original)
+++ branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/AutoInstall.pm Mon Mar 29 20:06:41 2010
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '0.92';
+	$VERSION = '0.95';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }

Modified: branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/Base.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/Base.pm?rev=55058&op=diff
==============================================================================
--- branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/Base.pm (original)
+++ branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/Base.pm Mon Mar 29 20:06:41 2010
@@ -4,7 +4,7 @@
 use strict 'vars';
 use vars qw{$VERSION};
 BEGIN {
-	$VERSION = '0.92';
+	$VERSION = '0.95';
 }
 
 # Suspend handler for "redefined" warnings

Modified: branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/Can.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/Can.pm?rev=55058&op=diff
==============================================================================
--- branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/Can.pm (original)
+++ branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/Can.pm Mon Mar 29 20:06:41 2010
@@ -9,7 +9,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '0.92';
+	$VERSION = '0.95';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }

Modified: branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/Fetch.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/Fetch.pm?rev=55058&op=diff
==============================================================================
--- branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/Fetch.pm (original)
+++ branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/Fetch.pm Mon Mar 29 20:06:41 2010
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '0.92';
+	$VERSION = '0.95';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }

Modified: branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/Include.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/Include.pm?rev=55058&op=diff
==============================================================================
--- branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/Include.pm (original)
+++ branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/Include.pm Mon Mar 29 20:06:41 2010
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '0.92';
+	$VERSION = '0.95';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }

Modified: branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/Makefile.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/Makefile.pm?rev=55058&op=diff
==============================================================================
--- branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/Makefile.pm (original)
+++ branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/Makefile.pm Mon Mar 29 20:06:41 2010
@@ -7,7 +7,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '0.92';
+	$VERSION = '0.95';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
@@ -25,8 +25,8 @@
 		die "Caught an potential prompt infinite loop ($c[1]|$c[2]|$_[0])";
 	}
 
-	# In automated testing, always use defaults
-	if ( $ENV{AUTOMATED_TESTING} and ! $ENV{PERL_MM_USE_DEFAULT} ) {
+	# In automated testing or non-interactive session, always use defaults
+	if ( ($ENV{AUTOMATED_TESTING} or -! -t STDIN) and ! $ENV{PERL_MM_USE_DEFAULT} ) {
 		local $ENV{PERL_MM_USE_DEFAULT} = 1;
 		goto &ExtUtils::MakeMaker::prompt;
 	} else {
@@ -45,10 +45,88 @@
 	( @_ < 2 or $makemaker >= eval($_[1]) ) ? $makemaker : 0
 }
 
+# Ripped from ExtUtils::MakeMaker 6.56, and slightly modified
+# as we only need to know here whether the attribute is an array
+# or a hash or something else (which may or may not be appendable).
+my %makemaker_argtype = (
+ C                  => 'ARRAY',
+ CONFIG             => 'ARRAY',
+# CONFIGURE          => 'CODE', # ignore
+ DIR                => 'ARRAY',
+ DL_FUNCS           => 'HASH',
+ DL_VARS            => 'ARRAY',
+ EXCLUDE_EXT        => 'ARRAY',
+ EXE_FILES          => 'ARRAY',
+ FUNCLIST           => 'ARRAY',
+ H                  => 'ARRAY',
+ IMPORTS            => 'HASH',
+ INCLUDE_EXT        => 'ARRAY',
+ LIBS               => 'ARRAY', # ignore ''
+ MAN1PODS           => 'HASH',
+ MAN3PODS           => 'HASH',
+ META_ADD           => 'HASH',
+ META_MERGE         => 'HASH',
+ PL_FILES           => 'HASH',
+ PM                 => 'HASH',
+ PMLIBDIRS          => 'ARRAY',
+ PMLIBPARENTDIRS    => 'ARRAY',
+ PREREQ_PM          => 'HASH',
+ CONFIGURE_REQUIRES => 'HASH',
+ SKIP               => 'ARRAY',
+ TYPEMAPS           => 'ARRAY',
+ XS                 => 'HASH',
+# VERSION            => ['version',''],  # ignore
+# _KEEP_AFTER_FLUSH  => '',
+
+ clean      => 'HASH',
+ depend     => 'HASH',
+ dist       => 'HASH',
+ dynamic_lib=> 'HASH',
+ linkext    => 'HASH',
+ macro      => 'HASH',
+ postamble  => 'HASH',
+ realclean  => 'HASH',
+ test       => 'HASH',
+ tool_autosplit => 'HASH',
+
+ # special cases where you can use makemaker_append
+ CCFLAGS   => 'APPENDABLE',
+ DEFINE    => 'APPENDABLE',
+ INC       => 'APPENDABLE',
+ LDDLFLAGS => 'APPENDABLE',
+ LDFROM    => 'APPENDABLE',
+);
+
 sub makemaker_args {
-	my $self = shift;
+	my ($self, %new_args) = @_;
 	my $args = ( $self->{makemaker_args} ||= {} );
-	%$args = ( %$args, @_ );
+	foreach my $key (keys %new_args) {
+		if ($makemaker_argtype{$key} eq 'ARRAY') {
+			$args->{$key} = [] unless defined $args->{$key};
+			unless (ref $args->{$key} eq 'ARRAY') {
+				$args->{$key} = [$args->{$key}]
+			}
+			push @{$args->{$key}},
+				ref $new_args{$key} eq 'ARRAY'
+					? @{$new_args{$key}}
+					: $new_args{$key};
+		}
+		elsif ($makemaker_argtype{$key} eq 'HASH') {
+			$args->{$key} = {} unless defined $args->{$key};
+			foreach my $skey (keys %{ $new_args{$key} }) {
+				$args->{$key}{$skey} = $new_args{$key}{$skey};
+			}
+		}
+		elsif ($makemaker_argtype{$key} eq 'APPENDABLE') {
+			$self->makemaker_append($key => $new_args{$key});
+		}
+		else {
+			if (defined $args->{$key}) {
+				warn qq{MakeMaker attribute "$key" is overriden; use "makemaker_append" to append values\n};
+			}
+			$args->{$key} = $new_args{$key};
+		}
+	}
 	return $args;
 }
 
@@ -58,8 +136,8 @@
 	my $self = shift;
 	my $name = shift;
 	my $args = $self->makemaker_args;
-	$args->{name} = defined $args->{$name}
-		? join( ' ', $args->{name}, @_ )
+	$args->{$name} = defined $args->{$name}
+		? join( ' ', $args->{$name}, @_ )
 		: join( ' ', @_ );
 }
 
@@ -118,6 +196,9 @@
 	%test_dir = ();
 	require File::Find;
 	File::Find::find( \&_wanted_t, $dir );
+	if ( -d 'xt' and ($Module::Install::AUTHOR or $ENV{RELEASE_TESTING}) ) {
+		File::Find::find( \&_wanted_t, 'xt' );
+	}
 	$self->tests( join ' ', map { "$_/*.t" } sort keys %test_dir );
 }
 
@@ -155,23 +236,42 @@
 	my $args = $self->makemaker_args;
 	$args->{DISTNAME} = $self->name;
 	$args->{NAME}     = $self->module_name || $self->name;
-	$args->{VERSION}  = $self->version;
 	$args->{NAME}     =~ s/-/::/g;
+	$args->{VERSION}  = $self->version or die <<'EOT';
+ERROR: Can't determine distribution version. Please specify it
+explicitly via 'version' in Makefile.PL, or set a valid $VERSION
+in a module, and provide its file path via 'version_from' (or
+'all_from' if you prefer) in Makefile.PL.
+EOT
+
+	$DB::single = 1;
 	if ( $self->tests ) {
-		$args->{test} = { TESTS => $self->tests };
+		my @tests = split ' ', $self->tests;
+		my %seen;
+		$args->{test} = {
+			TESTS => (join ' ', grep {!$seen{$_}++} @tests),
+		};
+	} elsif ( -d 'xt' and ($Module::Install::AUTHOR or $ENV{RELEASE_TESTING}) ) {
+		$args->{test} = {
+			TESTS => join( ' ', map { "$_/*.t" } grep { -d $_ } qw{ t xt } ),
+		};
 	}
 	if ( $] >= 5.005 ) {
 		$args->{ABSTRACT} = $self->abstract;
-		$args->{AUTHOR}   = $self->author;
+		$args->{AUTHOR}   = join ', ', @{$self->author || []};
 	}
 	if ( $self->makemaker(6.10) ) {
-		$args->{NO_META} = 1;
+		$args->{NO_META}   = 1;
+		#$args->{NO_MYMETA} = 1;
 	}
 	if ( $self->makemaker(6.17) and $self->sign ) {
 		$args->{SIGN} = 1;
 	}
 	unless ( $self->is_admin ) {
 		delete $args->{SIGN};
+	}
+	if ( $self->makemaker(6.31) and $self->license ) {
+		$args->{LICENSE} = $self->license;
 	}
 
 	my $prereq = ($args->{PREREQ_PM} ||= {});
@@ -222,12 +322,17 @@
 		}
 	}
 
-	$args->{INSTALLDIRS} = $self->installdirs;
-
-	my %args = map { ( $_ => $args->{$_} ) } grep {defined($args->{$_})} keys %$args;
+	if ($self->installdirs) {
+		warn qq{old INSTALLDIRS (probably set by makemaker_args) is overriden by installdirs\n} if $args->{INSTALLDIRS};
+		$args->{INSTALLDIRS} = $self->installdirs;
+	}
+
+	my %args = map {
+		( $_ => $args->{$_} ) } grep {defined($args->{$_} )
+	} keys %$args;
 
 	my $user_preop = delete $args{dist}->{PREOP};
-	if (my $preop = $self->admin->preop($user_preop)) {
+	if ( my $preop = $self->admin->preop($user_preop) ) {
 		foreach my $key ( keys %$preop ) {
 			$args{dist}->{$key} = $preop->{$key};
 		}
@@ -297,4 +402,4 @@
 
 __END__
 
-#line 426
+#line 531

Modified: branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/Metadata.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/Metadata.pm?rev=55058&op=diff
==============================================================================
--- branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/Metadata.pm (original)
+++ branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/Metadata.pm Mon Mar 29 20:06:41 2010
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '0.92';
+	$VERSION = '0.95';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
@@ -19,7 +19,6 @@
 	name
 	module_name
 	abstract
-	author
 	version
 	distribution_type
 	tests
@@ -43,7 +42,10 @@
 
 my @array_keys = qw{
 	keywords
+	author
 };
+
+*authors = \&author;
 
 sub Meta              { shift          }
 sub Meta_BooleanKeys  { @boolean_keys  }
@@ -230,7 +232,7 @@
 		die("The path '$file' does not exist, or is not a file");
 	}
 
-    $self->{values}{all_from} = $file;
+	$self->{values}{all_from} = $file;
 
 	# Some methods pull from POD instead of code.
 	# If there is a matching .pod, use that instead
@@ -242,7 +244,7 @@
 	$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->author_from($pod)        unless @{$self->author || []};
 	$self->license_from($pod)       unless $self->license;
 	$self->abstract_from($pod)      unless $self->abstract;
 
@@ -428,8 +430,49 @@
 		([^\n]*)
 	/ixms) {
 		my $author = $1 || $2;
-		$author =~ s{E<lt>}{<}g;
-		$author =~ s{E<gt>}{>}g;
+
+		# XXX: ugly but should work anyway...
+		if (eval "require Pod::Escapes; 1") {
+			# Pod::Escapes has a mapping table.
+			# It's in core of perl >= 5.9.3, and should be installed
+			# as one of the Pod::Simple's prereqs, which is a prereq
+			# of Pod::Text 3.x (see also below).
+			$author =~ s{ E<( (\d+) | ([A-Za-z]+) )> }
+			{
+				defined $2
+				? chr($2)
+				: defined $Pod::Escapes::Name2character_number{$1}
+				? chr($Pod::Escapes::Name2character_number{$1})
+				: do {
+					warn "Unknown escape: E<$1>";
+					"E<$1>";
+				};
+			}gex;
+		}
+		elsif (eval "require Pod::Text; 1" && $Pod::Text::VERSION < 3) {
+			# Pod::Text < 3.0 has yet another mapping table,
+			# though the table name of 2.x and 1.x are different.
+			# (1.x is in core of Perl < 5.6, 2.x is in core of
+			# Perl < 5.9.3)
+			my $mapping = ($Pod::Text::VERSION < 2)
+				? \%Pod::Text::HTML_Escapes
+				: \%Pod::Text::ESCAPES;
+			$author =~ s{ E<( (\d+) | ([A-Za-z]+) )> }
+			{
+				defined $2
+				? chr($2)
+				: defined $mapping->{$1}
+				? $mapping->{$1}
+				: do {
+					warn "Unknown escape: E<$1>";
+					"E<$1>";
+				};
+			}gex;
+		}
+		else {
+			$author =~ s{E<lt>}{<}g;
+			$author =~ s{E<gt>}{>}g;
+		}
 		$self->author($author);
 	} else {
 		warn "Cannot determine author info from $_[0]\n";
@@ -437,43 +480,47 @@
 }
 
 sub _extract_license {
-	if (
-		$_[0] =~ m/
-		(
-			=head \d \s+
-			(?:licen[cs]e|licensing|copyrights?|legal)\b
-			.*?
-		)
-		(=head\\d.*|=cut.*|)
-		\z
-	/ixms ) {
-		my $license_text = $1;
-		my @phrases      = (
-			'under the same (?:terms|license) as (?:perl|the perl programming language)' => 'perl', 1,
-			'under the terms of (?:perl|the perl programming language) itself' => 'perl', 1,
-			'GNU general public license'         => 'gpl',         1,
-			'GNU public license'                 => 'gpl',         1,
-			'GNU lesser general public license'  => 'lgpl',        1,
-			'GNU lesser public license'          => 'lgpl',        1,
-			'GNU library general public license' => 'lgpl',        1,
-			'GNU library public license'         => 'lgpl',        1,
-			'BSD license'                        => 'bsd',         1,
-			'Artistic license'                   => 'artistic',    1,
-			'GPL'                                => 'gpl',         1,
-			'LGPL'                               => 'lgpl',        1,
-			'BSD'                                => 'bsd',         1,
-			'Artistic'                           => 'artistic',    1,
-			'MIT'                                => 'mit',         1,
-			'proprietary'                        => 'proprietary', 0,
-		);
-		while ( my ($pattern, $license, $osi) = splice(@phrases, 0, 3) ) {
-			$pattern =~ s#\s+#\\s+#gs;
-			if ( $license_text =~ /\b$pattern\b/i ) {
-			        return $license;
-			}
-		}
-	} else {
-	        return;
+	my $pod = shift;
+	my $matched;
+	return __extract_license(
+		($matched) = $pod =~ m/
+			(=head \d \s+ (?:licen[cs]e|licensing)\b.*?)
+			(=head \d.*|=cut.*|)\z
+		/ixms
+	) || __extract_license(
+		($matched) = $pod =~ m/
+			(=head \d \s+ (?:copyrights?|legal)\b.*?)
+			(=head \d.*|=cut.*|)\z
+		/ixms
+	);
+}
+
+sub __extract_license {
+	my $license_text = shift or return;
+	my @phrases      = (
+		'under the same (?:terms|license) as (?:perl|the perl programming language)' => 'perl', 1,
+		'under the terms of (?:perl|the perl programming language) itself' => 'perl', 1,
+		'Artistic and GPL'                   => 'perl',        1,
+		'GNU general public license'         => 'gpl',         1,
+		'GNU public license'                 => 'gpl',         1,
+		'GNU lesser general public license'  => 'lgpl',        1,
+		'GNU lesser public license'          => 'lgpl',        1,
+		'GNU library general public license' => 'lgpl',        1,
+		'GNU library public license'         => 'lgpl',        1,
+		'BSD license'                        => 'bsd',         1,
+		'Artistic license'                   => 'artistic',    1,
+		'GPL'                                => 'gpl',         1,
+		'LGPL'                               => 'lgpl',        1,
+		'BSD'                                => 'bsd',         1,
+		'Artistic'                           => 'artistic',    1,
+		'MIT'                                => 'mit',         1,
+		'proprietary'                        => 'proprietary', 0,
+	);
+	while ( my ($pattern, $license, $osi) = splice(@phrases, 0, 3) ) {
+		$pattern =~ s#\s+#\\s+#gs;
+		if ( $license_text =~ /\b$pattern\b/i ) {
+			return $license;
+		}
 	}
 }
 

Modified: branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/Win32.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/Win32.pm?rev=55058&op=diff
==============================================================================
--- branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/Win32.pm (original)
+++ branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/Win32.pm Mon Mar 29 20:06:41 2010
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '0.92';
+	$VERSION = '0.95';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }

Modified: branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/WriteAll.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/WriteAll.pm?rev=55058&op=diff
==============================================================================
--- branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/WriteAll.pm (original)
+++ branches/upstream/libmoosex-types-structured-perl/current/inc/Module/Install/WriteAll.pm Mon Mar 29 20:06:41 2010
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '0.92';;
+	$VERSION = '0.95';;
 	@ISA     = qw{Module::Install::Base};
 	$ISCORE  = 1;
 }
@@ -26,7 +26,10 @@
 
 	$self->check_nmake if $args{check_nmake};
 	unless ( $self->makemaker_args->{PL_FILES} ) {
-		$self->makemaker_args( PL_FILES => {} );
+		# XXX: This still may be a bit over-defensive...
+		unless ($self->makemaker(6.25)) {
+			$self->makemaker_args( PL_FILES => {} ) if -f 'Build.PL';
+		}
 	}
 
 	# Until ExtUtils::MakeMaker support MYMETA.yml, make sure

Modified: branches/upstream/libmoosex-types-structured-perl/current/lib/MooseX/Meta/TypeConstraint/Structured.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-types-structured-perl/current/lib/MooseX/Meta/TypeConstraint/Structured.pm?rev=55058&op=diff
==============================================================================
--- branches/upstream/libmoosex-types-structured-perl/current/lib/MooseX/Meta/TypeConstraint/Structured.pm (original)
+++ branches/upstream/libmoosex-types-structured-perl/current/lib/MooseX/Meta/TypeConstraint/Structured.pm Mon Mar 29 20:06:41 2010
@@ -267,7 +267,7 @@
 
 =head2 type_constraints_equals
 
-Checks to see if the internal type contraints are equal.
+Checks to see if the internal type constraints are equal.
 
 =cut
 

Modified: branches/upstream/libmoosex-types-structured-perl/current/lib/MooseX/Types/Structured.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-types-structured-perl/current/lib/MooseX/Types/Structured.pm?rev=55058&op=diff
==============================================================================
--- branches/upstream/libmoosex-types-structured-perl/current/lib/MooseX/Types/Structured.pm (original)
+++ branches/upstream/libmoosex-types-structured-perl/current/lib/MooseX/Types/Structured.pm Mon Mar 29 20:06:41 2010
@@ -11,7 +11,7 @@
 use Devel::PartialDump;
 use Scalar::Util qw(blessed);
 
-our $VERSION = '0.20';
+our $VERSION = '0.21';
 our $AUTHORITY = 'cpan:JJNAPIORK';
 
 =head1 NAME
@@ -128,7 +128,7 @@
 =head2 Comparing Parameterized types to Structured types
 
 Parameterized constraints are built into core Moose and you are probably already
-familar with the type constraints 'HashRef' and 'ArrayRef'.  Structured types
+familiar with the type constraints 'HashRef' and 'ArrayRef'.  Structured types
 have similar functionality, so their syntax is likewise similar. For example,
 you could define a parameterized constraint like:
 

Modified: branches/upstream/libmoosex-types-structured-perl/current/t/04-map.t
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-types-structured-perl/current/t/04-map.t?rev=55058&op=diff
==============================================================================
--- branches/upstream/libmoosex-types-structured-perl/current/t/04-map.t (original)
+++ branches/upstream/libmoosex-types-structured-perl/current/t/04-map.t Mon Mar 29 20:06:41 2010
@@ -4,7 +4,6 @@
 
 use MooseX::Types::Moose qw(Int Num);
 use MooseX::Types::Structured qw(Map);
-use Try::Tiny;
 
 my $type = Map[ Int, Num ];
 




More information about the Pkg-perl-cvs-commits mailing list