Hello community, here is the log from the commit of package perl-CPANPLUS for openSUSE:Factory checked in at 2012-02-17 12:07:20 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-CPANPLUS (Old) and /work/SRC/openSUSE:Factory/.perl-CPANPLUS.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-CPANPLUS", Maintainer is "" Changes: -------- --- /work/SRC/openSUSE:Factory/perl-CPANPLUS/perl-CPANPLUS.changes 2012-01-09 11:16:19.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.perl-CPANPLUS.new/perl-CPANPLUS.changes 2012-02-17 12:07:23.000000000 +0100 @@ -1,0 +2,8 @@ +Sat Feb 11 18:47:10 UTC 2012 - co...@suse.com + +- updated to 0.9116 + * add NAME headings in modules with POD, Debian + Lintian fixes, http://bugs.debian.org/65045 + * Implement reload command in the shell + +------------------------------------------------------------------- Old: ---- CPANPLUS-0.9115.tar.gz New: ---- CPANPLUS-0.9116.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-CPANPLUS.spec ++++++ --- /var/tmp/diff_new_pack.Mrp9HE/_old 2012-02-17 12:07:26.000000000 +0100 +++ /var/tmp/diff_new_pack.Mrp9HE/_new 2012-02-17 12:07:26.000000000 +0100 @@ -1,7 +1,7 @@ # # spec file for package perl-CPANPLUS # -# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,16 +16,16 @@ # - Name: perl-CPANPLUS -Version: 0.9115 -Release: 1 -License: GPL-1.0+ or Artistic-1.0 +Version: 0.9116 +Release: 0 %define cpan_name CPANPLUS Summary: API & CLI access to the CPAN mirrors -Url: http://search.cpan.org/dist/CPANPLUS/ +License: Artistic-1.0 or GPL-1.0+ Group: Development/Libraries/Perl +Url: http://search.cpan.org/dist/CPANPLUS/ Source: http://www.cpan.org/authors/id/B/BI/BINGOS/%{cpan_name}-%{version}.tar.gz +# MANUAL Patch1: perl-CPANPLUS-cpanp-run-perl-add_missing_shebang.patch BuildArch: noarch BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -33,7 +33,7 @@ BuildRequires: perl-macros BuildRequires: perl(Archive::Extract) >= 0.16 BuildRequires: perl(Archive::Tar) >= 1.23 -BuildRequires: perl(CPANPLUS::Dist::Build) >= 0.24 +BuildRequires: perl(CPANPLUS::Dist::Build) >= 0.60 BuildRequires: perl(Digest::SHA) >= 0.0 BuildRequires: perl(ExtUtils::Install) >= 1.42 BuildRequires: perl(File::Fetch) >= 0.15_02 @@ -53,9 +53,6 @@ BuildRequires: perl(Term::UI) >= 0.18 BuildRequires: perl(Test::Harness) >= 2.62 BuildRequires: perl(version) >= 0.77 -BuildRequires: perl(Data::Dumper) -BuildRequires: perl(DBD::SQLite) -BuildRequires: perl(DBIx::Simple) #BuildRequires: perl(Archive::Tar::Constant) #BuildRequires: perl(Archive::Tar::File) #BuildRequires: perl(Compress::Zlib) @@ -114,7 +111,7 @@ #BuildRequires: perl(YAML) Requires: perl(Archive::Extract) >= 0.16 Requires: perl(Archive::Tar) >= 1.23 -Requires: perl(CPANPLUS::Dist::Build) >= 0.24 +Requires: perl(CPANPLUS::Dist::Build) >= 0.60 Requires: perl(Digest::SHA) >= 0.0 Requires: perl(ExtUtils::Install) >= 1.42 Requires: perl(File::Fetch) >= 0.15_02 @@ -134,9 +131,6 @@ Requires: perl(Term::UI) >= 0.18 Requires: perl(Test::Harness) >= 2.62 Requires: perl(version) >= 0.77 -Recommends: perl(Data::Dumper) -Recommends: perl(DBD::SQLite) -Recommends: perl(DBIx::Simple) %{perl_requires} %description @@ -146,7 +140,6 @@ %prep %setup -q -n %{cpan_name}-%{version} %patch1 - find . -type f -print0 | xargs -0 chmod 644 %build ++++++ CPANPLUS-0.9115.tar.gz -> CPANPLUS-0.9116.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/ChangeLog new/CPANPLUS-0.9116/ChangeLog --- old/CPANPLUS-0.9115/ChangeLog 2011-12-20 22:11:29.000000000 +0100 +++ new/CPANPLUS-0.9116/ChangeLog 2012-01-05 23:51:48.000000000 +0100 @@ -1,3 +1,9 @@ +Changes for 0.9116 Thu Jan 5 22:45:06 2012 +================================================ +* add NAME headings in modules with POD, Debian + Lintian fixes, http://bugs.debian.org/65045 +* Implement reload command in the shell + Changes for 0.9115 Tue Dec 20 21:10:24 2011 ================================================ * Added new config option 'allow_unknown_prereqs' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/MANIFEST new/CPANPLUS-0.9116/MANIFEST --- old/CPANPLUS-0.9115/MANIFEST 2011-12-19 15:43:29.000000000 +0100 +++ new/CPANPLUS-0.9116/MANIFEST 2012-01-05 23:51:40.000000000 +0100 @@ -8,7 +8,6 @@ inc/bundle/Archive/Tar/Constant.pm inc/bundle/Archive/Tar/File.pm inc/bundle/CPAN/Meta/YAML.pm -inc/bundle/Class/Inspector.pm inc/bundle/Devel/InnerPackage.pm inc/bundle/File/Fetch.pm inc/bundle/File/Fetch/Item.pm diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/META.yml new/CPANPLUS-0.9116/META.yml --- old/CPANPLUS-0.9115/META.yml 2011-12-20 22:15:27.000000000 +0100 +++ new/CPANPLUS-0.9116/META.yml 2012-01-05 23:51:48.000000000 +0100 @@ -18,4 +18,4 @@ license: http://dev.perl.org/licenses/ homepage: http://github.com/jib/cpanplus-devel repository: http://github.com/jib/cpanplus-devel -version: 0.9115 +version: 0.9116 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/inc/bundle/Class/Inspector.pm new/CPANPLUS-0.9116/inc/bundle/Class/Inspector.pm --- old/CPANPLUS-0.9115/inc/bundle/Class/Inspector.pm 2011-04-22 23:42:45.000000000 +0200 +++ new/CPANPLUS-0.9116/inc/bundle/Class/Inspector.pm 1970-01-01 01:00:00.000000000 +0100 @@ -1,629 +0,0 @@ -package Class::Inspector; - -=pod - -=head1 NAME - -Class::Inspector - Get information about a class and its structure - -=head1 SYNOPSIS - - use Class::Inspector; - - # Is a class installed and/or loaded - Class::Inspector->installed( 'Foo::Class' ); - Class::Inspector->loaded( 'Foo::Class' ); - - # Filename related information - Class::Inspector->filename( 'Foo::Class' ); - Class::Inspector->resolved_filename( 'Foo::Class' ); - - # Get subroutine related information - Class::Inspector->functions( 'Foo::Class' ); - Class::Inspector->function_refs( 'Foo::Class' ); - Class::Inspector->function_exists( 'Foo::Class', 'bar' ); - Class::Inspector->methods( 'Foo::Class', 'full', 'public' ); - - # Find all loaded subclasses or something - Class::Inspector->subclasses( 'Foo::Class' ); - -=head1 DESCRIPTION - -Class::Inspector allows you to get information about a loaded class. Most or -all of this information can be found in other ways, but they arn't always -very friendly, and usually involve a relatively high level of Perl wizardry, -or strange and unusual looking code. Class::Inspector attempts to provide -an easier, more friendly interface to this information. - -=head1 METHODS - -=cut - -use 5.005; -# We don't want to use strict refs, since we do a lot of things in here -# that arn't strict refs friendly. -use strict qw{vars subs}; -use File::Spec (); - -# Globals -use vars qw{$VERSION $RE_IDENT $RE_CLASS $UNIX}; -BEGIN { - $VERSION = '1.16'; - - # Predefine some regexs - $RE_IDENT = qr/\A[^\W\d]\w*\z/s; - $RE_CLASS = qr/\A[^\W\d]\w*(?:(?:'|::)[^\W\d]\w*)*\z/s; - - # Are we on something Unix-like? - $UNIX = !! ( $File::Spec::ISA[0] eq 'File::Spec::Unix' ); -} - - - - - -##################################################################### -# Basic Methods - -=pod - -=head2 installed $class - -The C<installed> static method tries to determine if a class is installed -on the machine, or at least available to Perl. It does this by wrapping -around C<resolved_filename>. - -Returns true if installed/available, false if the class is not installed, -or C<undef> if the class name is invalid. - -=cut - -sub installed { - my $class = shift; - !! ($class->loaded_filename($_[0]) or $class->resolved_filename($_[0])); -} - -=pod - -=head2 loaded $class - -The C<loaded> static method tries to determine if a class is loaded by -looking for symbol table entries. - -This method it uses to determine this will work even if the class does not -have its own file, but is contained inside a single file with multiple -classes in it. Even in the case of some sort of run-time loading class -being used, these typically leave some trace in the symbol table, so an -L<Autoload> or L<Class::Autouse>-based class should correctly appear -loaded. - -Returns true if the class is loaded, false if not, or C<undef> if the -class name is invalid. - -=cut - -sub loaded { - my $class = shift; - my $name = $class->_class(shift) or return undef; - $class->_loaded($name); -} - -sub _loaded { - my ($class, $name) = @_; - - # Handle by far the two most common cases - # This is very fast and handles 99% of cases. - return 1 if defined ${"${name}::VERSION"}; - return 1 if defined @{"${name}::ISA"}; - - # Are there any symbol table entries other than other namespaces - foreach ( keys %{"${name}::"} ) { - next if substr($_, -2, 2) eq '::'; - return 1 if defined &{"${name}::$_"}; - } - - # No functions, and it doesn't have a version, and isn't anything. - # As an absolute last resort, check for an entry in %INC - my $filename = $class->_inc_filename($name); - return 1 if defined $INC{$filename}; - - ''; -} - -=pod - -=head2 filename $class - -For a given class, returns the base filename for the class. This will NOT -be a fully resolved filename, just the part of the filename BELOW the -C<@INC> entry. - - print Class->filename( 'Foo::Bar' ); - > Foo/Bar.pm - -This filename will be returned with the right seperator for the local -platform, and should work on all platforms. - -Returns the filename on success or C<undef> if the class name is invalid. - -=cut - -sub filename { - my $class = shift; - my $name = $class->_class(shift) or return undef; - File::Spec->catfile( split /(?:'|::)/, $name ) . '.pm'; -} - -=pod - -=head2 resolved_filename $class, @try_first - -For a given class, the C<resolved_filename> static method returns the fully -resolved filename for a class. That is, the file that the class would be -loaded from. - -This is not nescesarily the file that the class WAS loaded from, as the -value returned is determined each time it runs, and the C<@INC> include -path may change. - -To get the actual file for a loaded class, see the C<loaded_filename> -method. - -Returns the filename for the class, or C<undef> if the class name is -invalid. - -=cut - -sub resolved_filename { - my $class = shift; - my $filename = $class->_inc_filename(shift) or return undef; - my @try_first = @_; - - # Look through the @INC path to find the file - foreach ( @try_first, @INC ) { - my $full = "$_/$filename"; - next unless -e $full; - return $UNIX ? $full : $class->_inc_to_local($full); - } - - # File not found - ''; -} - -=pod - -=head2 loaded_filename $class - -For a given loaded class, the C<loaded_filename> static method determines -(via the C<%INC> hash) the name of the file that it was originally loaded -from. - -Returns a resolved file path, or false if the class did not have it's own -file. - -=cut - -sub loaded_filename { - my $class = shift; - my $filename = $class->_inc_filename(shift); - $UNIX ? $INC{$filename} : $class->_inc_to_local($INC{$filename}); -} - - - - - -##################################################################### -# Sub Related Methods - -=pod - -=head2 functions $class - -For a loaded class, the C<functions> static method returns a list of the -names of all the functions in the classes immediate namespace. - -Note that this is not the METHODS of the class, just the functions. - -Returns a reference to an array of the function names on success, or C<undef> -if the class name is invalid or the class is not loaded. - -=cut - -sub functions { - my $class = shift; - my $name = $class->_class(shift) or return undef; - return undef unless $class->loaded( $name ); - - # Get all the CODE symbol table entries - my @functions = sort grep { /$RE_IDENT/o } - grep { defined &{"${name}::$_"} } - keys %{"${name}::"}; - \@functions; -} - -=pod - -=head2 function_refs $class - -For a loaded class, the C<function_refs> static method returns references to -all the functions in the classes immediate namespace. - -Note that this is not the METHODS of the class, just the functions. - -Returns a reference to an array of C<CODE> refs of the functions on -success, or C<undef> if the class is not loaded. - -=cut - -sub function_refs { - my $class = shift; - my $name = $class->_class(shift) or return undef; - return undef unless $class->loaded( $name ); - - # Get all the CODE symbol table entries, but return - # the actual CODE refs this time. - my @functions = map { \&{"${name}::$_"} } - sort grep { /$RE_IDENT/o } - grep { defined &{"${name}::$_"} } - keys %{"${name}::"}; - \@functions; -} - -=pod - -=head2 function_exists $class, $function - -Given a class and function name the C<function_exists> static method will -check to see if the function exists in the class. - -Note that this is as a function, not as a method. To see if a method -exists for a class, use the C<can> method for any class or object. - -Returns true if the function exists, false if not, or C<undef> if the -class or function name are invalid, or the class is not loaded. - -=cut - -sub function_exists { - my $class = shift; - my $name = $class->_class( shift ) or return undef; - my $function = shift or return undef; - - # Only works if the class is loaded - return undef unless $class->loaded( $name ); - - # Does the GLOB exist and its CODE part exist - defined &{"${name}::$function"}; -} - -=pod - -=head2 methods $class, @options - -For a given class name, the C<methods> static method will returns ALL -the methods available to that class. This includes all methods available -from every class up the class' C<@ISA> tree. - -Returns a reference to an array of the names of all the available methods -on success, or C<undef> if the class name is invalid or the class is not -loaded. - -A number of options are available to the C<methods> method that will alter -the results returned. These should be listed after the class name, in any -order. - - # Only get public methods - my $method = Class::Inspector->methods( 'My::Class', 'public' ); - -=over 4 - -=item public - -The C<public> option will return only 'public' methods, as defined by the Perl -convention of prepending an underscore to any 'private' methods. The C<public> -option will effectively remove any methods that start with an underscore. - -=item private - -The C<private> options will return only 'private' methods, as defined by the -Perl convention of prepending an underscore to an private methods. The -C<private> option will effectively remove an method that do not start with an -underscore. - -B<Note: The C<public> and C<private> options are mutually exclusive> - -=item full - -C<methods> normally returns just the method name. Supplying the C<full> option -will cause the methods to be returned as the full names. That is, instead of -returning C<[ 'method1', 'method2', 'method3' ]>, you would instead get -C<[ 'Class::method1', 'AnotherClass::method2', 'Class::method3' ]>. - -=item expanded - -The C<expanded> option will cause a lot more information about method to be -returned. Instead of just the method name, you will instead get an array -reference containing the method name as a single combined name, ala C<full>, -the seperate class and method, and a CODE ref to the actual function ( if -available ). Please note that the function reference is not guarenteed to -be available. C<Class::Inspector> is intended at some later time, work -with modules that have some some of common run-time loader in place ( e.g -C<Autoloader> or C<Class::Autouse> for example. - -The response from C<methods( 'Class', 'expanded' )> would look something like -the following. - - [ - [ 'Class::method1', 'Class', 'method1', \&Class::method1 ], - [ 'Another::method2', 'Another', 'method2', \&Another::method2 ], - [ 'Foo::bar', 'Foo', 'bar', \&Foo::bar ], - ] - -=back - -=cut - -sub methods { - my $class = shift; - my $name = $class->_class( shift ) or return undef; - my @arguments = map { lc $_ } @_; - - # Process the arguments to determine the options - my %options = (); - foreach ( @arguments ) { - if ( $_ eq 'public' ) { - # Only get public methods - return undef if $options{private}; - $options{public} = 1; - - } elsif ( $_ eq 'private' ) { - # Only get private methods - return undef if $options{public}; - $options{private} = 1; - - } elsif ( $_ eq 'full' ) { - # Return the full method name - return undef if $options{expanded}; - $options{full} = 1; - - } elsif ( $_ eq 'expanded' ) { - # Returns class, method and function ref - return undef if $options{full}; - $options{expanded} = 1; - - } else { - # Unknown or unsupported options - return undef; - } - } - - # Only works if the class is loaded - return undef unless $class->loaded( $name ); - - # Get the super path ( not including UNIVERSAL ) - # Rather than using Class::ISA, we'll use an inlined version - # that implements the same basic algorithm. - my @path = (); - my @queue = ( $name ); - my %seen = ( $name => 1 ); - while ( my $cl = shift @queue ) { - push @path, $cl; - unshift @queue, grep { ! $seen{$_}++ } - map { s/^::/main::/; s/\'/::/g; $_ } - ( @{"${cl}::ISA"} ); - } - - # Find and merge the function names across the entire super path. - # Sort alphabetically and return. - my %methods = (); - foreach my $namespace ( @path ) { - my @functions = grep { ! $methods{$_} } - grep { /$RE_IDENT/o } - grep { defined &{"${namespace}::$_"} } - keys %{"${namespace}::"}; - foreach ( @functions ) { - $methods{$_} = $namespace; - } - } - - # Filter to public or private methods if needed - my @methodlist = sort keys %methods; - @methodlist = grep { ! /^\_/ } @methodlist if $options{public}; - @methodlist = grep { /^\_/ } @methodlist if $options{private}; - - # Return in the correct format - @methodlist = map { "$methods{$_}::$_" } @methodlist if $options{full}; - @methodlist = map { - [ "$methods{$_}::$_", $methods{$_}, $_, \&{"$methods{$_}::$_"} ] - } @methodlist if $options{expanded}; - - \@methodlist; -} - - - - - -##################################################################### -# Search Methods - -=pod - -=head2 subclasses $class - -The C<subclasses> static method will search then entire namespace (and thus -B<all> currently loaded classes) to find all classes that are subclasses -of the class provided as a the parameter. - -The actual test will be done by calling C<isa> on the class as a static -method. (i.e. C<My::Class-E<gt>isa($class)>. - -Returns a reference to a list of the loaded classes that match the class -provided, or false is none match, or C<undef> if the class name provided -is invalid. - -=cut - -sub subclasses { - my $class = shift; - my $name = $class->_class( shift ) or return undef; - - # Prepare the search queue - my @found = (); - my @queue = grep { $_ ne 'main' } $class->_subnames(''); - while ( @queue ) { - my $c = shift(@queue); # c for class - if ( $class->_loaded($c) ) { - # At least one person has managed to misengineer - # a situation in which ->isa could die, even if the - # class is real. Trap these cases and just skip - # over that (bizarre) class. That would at limit - # problems with finding subclasses to only the - # modules that have broken ->isa implementation. - eval { - if ( $c->isa($name) ) { - # Add to the found list, but don't add the class itself - push @found, $c unless $c eq $name; - } - }; - } - - # Add any child namespaces to the head of the queue. - # This keeps the queue length shorted, and allows us - # not to have to do another sort at the end. - unshift @queue, map { "${c}::$_" } $class->_subnames($c); - } - - @found ? \@found : ''; -} - -sub _subnames { - my ($class, $name) = @_; - return sort - grep { - substr($_, -2, 2, '') eq '::' - and - /$RE_IDENT/o - } - keys %{"${name}::"}; -} - - - - - -##################################################################### -# Children Related Methods - -# These can go undocumented for now, until I decide if its best to -# just search the children in namespace only, or if I should do it via -# the file system. - -# Find all the loaded classes below us -sub children { - my $class = shift; - my $name = $class->_class(shift) or return (); - - # Find all the Foo:: elements in our symbol table - no strict 'refs'; - map { "${name}::$_" } sort grep { s/::$// } keys %{"${name}::"}; -} - -# As above, but recursively -sub recursive_children { - my $class = shift; - my $name = $class->_class(shift) or return (); - my @children = ( $name ); - - # Do the search using a nicer, more memory efficient - # variant of actual recursion. - my $i = 0; - no strict 'refs'; - while ( my $namespace = $children[$i++] ) { - push @children, map { "${namespace}::$_" } - grep { ! /^::/ } # Ignore things like ::ISA::CACHE:: - grep { s/::$// } - keys %{"${namespace}::"}; - } - - sort @children; -} - - - - - -##################################################################### -# Private Methods - -# Checks and expands ( if needed ) a class name -sub _class { - my $class = shift; - my $name = shift or return ''; - - # Handle main shorthand - return 'main' if $name eq '::'; - $name =~ s/\A::/main::/; - - # Check the class name is valid - $name =~ /$RE_CLASS/o ? $name : ''; -} - -# Create a INC-specific filename, which always uses '/' -# regardless of platform. -sub _inc_filename { - my $class = shift; - my $name = $class->_class(shift) or return undef; - join( '/', split /(?:'|::)/, $name ) . '.pm'; -} - -# Convert INC-specific file name to local file name -sub _inc_to_local { - my $class = shift; - - # Shortcut in the Unix case - return $_[0] if $UNIX; - - # Get the INC filename and convert - my $inc_name = shift or return undef; - my ($vol, $dir, $file) = File::Spec::Unix->splitpath( $inc_name ); - $dir = File::Spec->catdir( File::Spec::Unix->splitdir( $dir || "" ) ); - File::Spec->catpath( $vol, $dir, $file || "" ); -} - -1; - -=pod - -=head1 TO DO - -- Adding Class::Inspector::Functions - -=head1 SUPPORT - -Bugs should be reported via the CPAN bug tracker - -L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Class-Inspector> - -For other issues, or commercial enhancement or support, contact the author. - -=head1 AUTHOR - -Adam Kennedy E<lt>c...@ali.ase<gt> - -=head1 SEE ALSO - -L<http://ali.as/>, L<Class::Handle> - -=head1 COPYRIGHT - -Copyright (c) 2002 - 2006 Adam Kennedy. All rights reserved. - -This program is free software; you can redistribute -it and/or modify it under the same terms as Perl itself. - -The full text of the license can be found in the -LICENSE file included with this module. - -=cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/inc/bundle/Devel/InnerPackage.pm new/CPANPLUS-0.9116/inc/bundle/Devel/InnerPackage.pm --- old/CPANPLUS-0.9115/inc/bundle/Devel/InnerPackage.pm 2011-04-22 23:42:45.000000000 +0200 +++ new/CPANPLUS-0.9116/inc/bundle/Devel/InnerPackage.pm 2012-01-05 23:51:48.000000000 +0100 @@ -4,7 +4,7 @@ use base qw(Exporter); use vars qw($VERSION @EXPORT_OK); -$VERSION = '0.3'; +$VERSION = '0.4'; @EXPORT_OK = qw(list_packages); =pod @@ -70,7 +70,7 @@ { $cand =~ s!::$!!; my @children = list_packages($pack.$cand); - + push @packs, "$pack$cand" unless $cand =~ /^::/ || !__PACKAGE__->_loaded($pack.$cand); # or @children; push @packs, @children; @@ -83,12 +83,12 @@ sub _loaded { my ($class, $name) = @_; - no strict 'refs'; + no strict 'refs'; # Handle by far the two most common cases # This is very fast and handles 99% of cases. return 1 if defined ${"${name}::VERSION"}; - return 1 if defined @{"${name}::ISA"}; + return 1 if @{"${name}::ISA"}; # Are there any symbol table entries other than other namespaces foreach ( keys %{"${name}::"} ) { @@ -119,7 +119,7 @@ None known. -=cut +=cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/inc/bundle/Module/Pluggable/Object.pm new/CPANPLUS-0.9116/inc/bundle/Module/Pluggable/Object.pm --- old/CPANPLUS-0.9115/inc/bundle/Module/Pluggable/Object.pm 2011-04-22 23:42:45.000000000 +0200 +++ new/CPANPLUS-0.9116/inc/bundle/Module/Pluggable/Object.pm 2012-01-05 23:51:48.000000000 +0100 @@ -19,7 +19,7 @@ } -### Eugggh, this code smells +### Eugggh, this code smells ### This is what happens when you keep adding patches ### *sigh* @@ -42,7 +42,7 @@ } # default search path is '<Module>::<Name>::Plugin' - $self->{'search_path'} = ["${pkg}::Plugin"] unless $self->{'search_path'}; + $self->{'search_path'} = ["${pkg}::Plugin"] unless $self->{'search_path'}; #my %opts = %$self; @@ -59,7 +59,7 @@ push(@plugins, $self->handle_innerpackages($_)) for @{$self->{'search_path'}}; # push @plugins, map { print STDERR "$_\n"; $_->require } list_packages($_) for (@{$self->{'search_path'}}); - + # return blank unless we've found anything return () unless @plugins; @@ -77,7 +77,7 @@ if (defined $self->{'instantiate'}) { my $method = $self->{'instantiate'}; return map { ($_->can($method)) ? $_->$method(@_) : () } keys %plugins; - } else { + } else { # no? just return the names return keys %plugins; } @@ -88,8 +88,8 @@ sub _setup_exceptions { my $self = shift; - my %only; - my %except; + my %only; + my %except; my $only; my $except; @@ -102,7 +102,7 @@ $only{$self->{'only'}} = 1; } } - + if (defined $self->{'except'}) { if (ref($self->{'except'}) eq 'ARRAY') { @@ -117,7 +117,7 @@ $self->{_exceptions}->{only} = $only; $self->{_exceptions}->{except_hash} = \%except; $self->{_exceptions}->{except} = $except; - + } sub _is_legit { @@ -168,10 +168,10 @@ my @files = $self->find_files($sp); - # foreach one we've found + # foreach one we've found foreach my $file (@files) { # untaint the file; accept .pm only - next unless ($file) = ($file =~ /(.*$file_regex)$/); + next unless ($file) = ($file =~ /(.*$file_regex)$/); # parse the file to get the name my ($name, $directory, $suffix) = fileparse($file, $file_regex); @@ -206,10 +206,10 @@ my @dirs = (); if ($directory) { ($directory) = ($directory =~ /(.*)/); - @dirs = grep(length($_), splitdir($directory)) + @dirs = grep(length($_), splitdir($directory)) unless $directory eq curdir(); for my $d (reverse @dirs) { - my $pkg_dir = pop @pkg_dirs; + my $pkg_dir = pop @pkg_dirs; last unless defined $pkg_dir; $d =~ s/\Q$pkg_dir\E/$pkg_dir/i; # Correct case } @@ -222,7 +222,7 @@ my $err = $self->handle_finding_plugin($plugin); carp "Couldn't require $plugin : $err" if $err; - + push @plugins, $plugin; } @@ -255,7 +255,7 @@ my $self = shift; my $plugin = shift; - return unless (defined $self->{'instantiate'} || $self->{'require'}); + return unless (defined $self->{'instantiate'} || $self->{'require'}); return unless $self->_is_legit($plugin); $self->_require($plugin); } @@ -272,8 +272,8 @@ my @files = (); { # for the benefit of perl 5.6.1's Find, localize topic local $_; - File::Find::find( { no_chdir => 1, - wanted => sub { + File::Find::find( { no_chdir => 1, + wanted => sub { # Inlined from File::Find::Rule C< name => '*.pm' > return unless $File::Find::name =~ /$file_regex/; (my $path = $File::Find::name) =~ s#^\\./##; @@ -328,18 +328,18 @@ package MyClass; use Module::Pluggable::Object; - + my $finder = Module::Pluggable::Object->new(%opts); print "My plugins are: ".join(", ", $finder->plugins)."\n"; =head1 DESCRIPTION -Provides a simple but, hopefully, extensible way of having 'plugins' for +Provides a simple but, hopefully, extensible way of having 'plugins' for your module. Obviously this isn't going to be the be all and end all of solutions but it works for me. -Essentially all it does is export a method into your namespace that -looks through a search path for .pm files and turn those into class names. +Essentially all it does is export a method into your namespace that +looks through a search path for .pm files and turn those into class names. Optionally it instantiates those classes for you. @@ -369,5 +369,5 @@ L<Module::Pluggable> -=cut +=cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/inc/bundle/Module/Pluggable.pm new/CPANPLUS-0.9116/inc/bundle/Module/Pluggable.pm --- old/CPANPLUS-0.9115/inc/bundle/Module/Pluggable.pm 2011-04-22 23:42:45.000000000 +0200 +++ new/CPANPLUS-0.9116/inc/bundle/Module/Pluggable.pm 2012-01-05 23:51:48.000000000 +0100 @@ -5,20 +5,20 @@ use Module::Pluggable::Object; # ObQuote: -# Bob Porter: Looks like you've been missing a lot of work lately. -# Peter Gibbons: I wouldn't say I've been missing it, Bob! +# Bob Porter: Looks like you've been missing a lot of work lately. +# Peter Gibbons: I wouldn't say I've been missing it, Bob! -$VERSION = '3.9'; +$VERSION = '4.0'; sub import { my $class = shift; my %opts = @_; - my ($pkg, $file) = caller; + my ($pkg, $file) = caller; # the default name for the method is 'plugins' my $sub = $opts{'sub_name'} || 'plugins'; - # get our package + # get our package my ($package) = $opts{'package'} || $pkg; $opts{filename} = $file; $opts{package} = $package; @@ -44,7 +44,7 @@ if (defined $only) { $finder->{'only'} = $only; }; - + return $finder->{'only'}; }; @@ -54,14 +54,14 @@ if (defined $except) { $finder->{'except'} = $except; }; - + return $finder->{'except'}; }; no strict 'refs'; no warnings qw(redefine prototype); - + *{"$package\::$sub"} = $subroutine; *{"$package\::search_path"} = $searchsub; *{"$package\::only"} = $onlysub; @@ -84,23 +84,23 @@ package MyClass; use Module::Pluggable; - + and then later ... use MyClass; my $mc = MyClass->new(); # returns the names of all plugins installed under MyClass::Plugin::* - my @plugins = $mc->plugins(); + my @plugins = $mc->plugins(); =head1 EXAMPLE Why would you want to do this? Say you have something that wants to pass an -object to a number of different plugins in turn. For example you may +object to a number of different plugins in turn. For example you may want to extract meta-data from every email you get sent and do something -with it. Plugins make sense here because then you can keep adding new -meta data parsers and all the logic and docs for each one will be -self contained and new handlers are easy to add without changing the +with it. Plugins make sense here because then you can keep adding new +meta data parsers and all the logic and docs for each one will be +self contained and new handlers are easy to add without changing the core code. For that, you might do something like ... package Email::Examiner; @@ -125,8 +125,8 @@ .. and all the plugins will get a chance in turn to look at it. This can be trivally extended so that plugins could save the email -somewhere and then no other plugin should try and do that. -Simply have it so that the C<examine> method returns C<1> if +somewhere and then no other plugin should try and do that. +Simply have it so that the C<examine> method returns C<1> if it has saved the email somewhere. You might also wnat to be paranoid and check to see if the plugin has an C<examine> method. @@ -141,20 +141,20 @@ =head1 DESCRIPTION -Provides a simple but, hopefully, extensible way of having 'plugins' for +Provides a simple but, hopefully, extensible way of having 'plugins' for your module. Obviously this isn't going to be the be all and end all of solutions but it works for me. -Essentially all it does is export a method into your namespace that -looks through a search path for .pm files and turn those into class names. +Essentially all it does is export a method into your namespace that +looks through a search path for .pm files and turn those into class names. Optionally it instantiates those classes for you. =head1 ADVANCED USAGE - + Alternatively, if you don't want to use 'plugins' as the method ... - + package MyClass; use Module::Pluggable sub_name => 'foo'; @@ -169,7 +169,7 @@ package MyClass; use Module::Pluggable search_path => ['Acme::MyClass::Plugin', 'MyClass::Extend']; -or directory +or directory use Module::Pluggable search_dirs => ['mylibs/Foo']; @@ -181,9 +181,9 @@ and then - # whatever is passed to 'plugins' will be passed - # to 'new' for each plugin - my @plugins = $mc->plugins(@options); + # whatever is passed to 'plugins' will be passed + # to 'new' for each plugin + my @plugins = $mc->plugins(@options); alternatively you can just require the module without instantiating it @@ -231,9 +231,9 @@ =head1 INNER PACKAGES If you have, for example, a file B<lib/Something/Plugin/Foo.pm> that -contains package definitions for both C<Something::Plugin::Foo> and -C<Something::Plugin::Bar> then as long as you either have either -the B<require> or B<instantiate> option set then we'll also find +contains package definitions for both C<Something::Plugin::Foo> and +C<Something::Plugin::Bar> then as long as you either have either +the B<require> or B<instantiate> option set then we'll also find C<Something::Plugin::Bar>. Nifty! =head1 OPTIONS @@ -244,22 +244,22 @@ =head2 sub_name -The name of the subroutine to create in your namespace. +The name of the subroutine to create in your namespace. By default this is 'plugins' =head2 search_path -An array ref of namespaces to look in. +An array ref of namespaces to look in. -=head2 search_dirs +=head2 search_dirs An array ref of directorys to look in before @INC. =head2 instantiate Call this method on the class. In general this will probably be 'new' -but it can be whatever you want. Whatever arguments are passed to 'plugins' +but it can be whatever you want. Whatever arguments are passed to 'plugins' will be passed to the method. The default is 'undef' i.e just return the class name. @@ -270,18 +270,18 @@ =head2 inner -If set to 0 will B<not> search inner packages. +If set to 0 will B<not> search inner packages. If set to 1 will override C<require>. =head2 only -Takes a string, array ref or regex describing the names of the only plugins to -return. Whilst this may seem perverse ... well, it is. But it also +Takes a string, array ref or regex describing the names of the only plugins to +return. Whilst this may seem perverse ... well, it is. But it also makes sense. Trust me. =head2 except -Similar to C<only> it takes a description of plugins to exclude +Similar to C<only> it takes a description of plugins to exclude from returning. This is slightly less perverse. =head2 package @@ -312,8 +312,8 @@ =head2 search_path -The method C<search_path> is exported into you namespace as well. -You can call that at any time to change or replace the +The method C<search_path> is exported into you namespace as well. +You can call that at any time to change or replace the search_path. $self->search_path( add => "New::Path" ); # add @@ -323,10 +323,10 @@ =head1 FUTURE PLANS -This does everything I need and I can't really think of any other +This does everything I need and I can't really think of any other features I want to add. Famous last words of course -Recently tried fixed to find inner packages and to make it +Recently tried fixed to find inner packages and to make it 'just work' with PAR but there are still some issues. @@ -350,6 +350,6 @@ L<File::Spec>, L<File::Find>, L<File::Basename>, L<Class::Factory::Util>, L<Module::Pluggable::Ordered> -=cut +=cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/inc/bundle/Term/UI/History.pm new/CPANPLUS-0.9116/inc/bundle/Term/UI/History.pm --- old/CPANPLUS-0.9115/inc/bundle/Term/UI/History.pm 2011-04-22 23:42:45.000000000 +0200 +++ new/CPANPLUS-0.9116/inc/bundle/Term/UI/History.pm 2012-01-05 23:51:48.000000000 +0100 @@ -8,7 +8,7 @@ =head1 NAME -Term::UI::History +Term::UI::History - history function =head1 SYNOPSIS @@ -74,7 +74,9 @@ } -{ package Log::Message::Handlers; +{ + package # hide this from PAUSE + Log::Message::Handlers; sub history { my $self = shift; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/inc/bundle/Term/UI.pm new/CPANPLUS-0.9116/inc/bundle/Term/UI.pm --- old/CPANPLUS-0.9115/inc/bundle/Term/UI.pm 2011-04-22 23:42:45.000000000 +0200 +++ new/CPANPLUS-0.9116/inc/bundle/Term/UI.pm 2012-01-05 23:51:48.000000000 +0100 @@ -11,7 +11,7 @@ BEGIN { use vars qw[$VERSION $AUTOREPLY $VERBOSE $INVALID]; $VERBOSE = 1; - $VERSION = '0.26'; + $VERSION = '0.30'; $INVALID = loc('Invalid selection, please try again: '); } @@ -35,7 +35,7 @@ my $reply = $term->get_reply( prompt => 'What is your favourite colour?', choices => [qw|blue red green|], - default => blue, + default => 'blue', ); my $bool = $term->ask_yn( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/lib/CPANPLUS/Backend/RV.pm new/CPANPLUS-0.9116/lib/CPANPLUS/Backend/RV.pm --- old/CPANPLUS-0.9115/lib/CPANPLUS/Backend/RV.pm 2011-04-22 23:42:44.000000000 +0200 +++ new/CPANPLUS-0.9116/lib/CPANPLUS/Backend/RV.pm 2011-12-22 00:09:03.000000000 +0100 @@ -19,7 +19,7 @@ =head1 NAME -CPANPLUS::Backend::RV +CPANPLUS::Backend::RV - return value objects =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/lib/CPANPLUS/Backend.pm new/CPANPLUS-0.9116/lib/CPANPLUS/Backend.pm --- old/CPANPLUS-0.9115/lib/CPANPLUS/Backend.pm 2011-07-12 14:44:05.000000000 +0200 +++ new/CPANPLUS-0.9116/lib/CPANPLUS/Backend.pm 2011-12-22 00:09:03.000000000 +0100 @@ -36,7 +36,7 @@ =head1 NAME -CPANPLUS::Backend +CPANPLUS::Backend - programmer's interface to CPANPLUS =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/lib/CPANPLUS/Config.pm new/CPANPLUS-0.9116/lib/CPANPLUS/Config.pm --- old/CPANPLUS-0.9115/lib/CPANPLUS/Config.pm 2011-12-20 22:00:32.000000000 +0100 +++ new/CPANPLUS-0.9116/lib/CPANPLUS/Config.pm 2011-12-22 00:09:03.000000000 +0100 @@ -25,7 +25,7 @@ =head1 NAME -CPANPLUS::Config +CPANPLUS::Config - configuration defaults and heuristics for CPANPLUS =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/lib/CPANPLUS/Configure.pm new/CPANPLUS-0.9116/lib/CPANPLUS/Configure.pm --- old/CPANPLUS-0.9115/lib/CPANPLUS/Configure.pm 2011-04-22 23:42:44.000000000 +0200 +++ new/CPANPLUS-0.9116/lib/CPANPLUS/Configure.pm 2011-12-22 00:09:03.000000000 +0100 @@ -39,7 +39,7 @@ =head1 NAME -CPANPLUS::Configure +CPANPLUS::Configure - configuration for CPANPLUS =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/lib/CPANPLUS/Dist/Autobundle.pm new/CPANPLUS-0.9116/lib/CPANPLUS/Dist/Autobundle.pm --- old/CPANPLUS-0.9115/lib/CPANPLUS/Dist/Autobundle.pm 2011-04-22 23:42:44.000000000 +0200 +++ new/CPANPLUS-0.9116/lib/CPANPLUS/Dist/Autobundle.pm 2011-12-22 00:09:03.000000000 +0100 @@ -10,7 +10,7 @@ =head1 NAME -CPANPLUS::Dist::Autobundle +CPANPLUS::Dist::Autobundle - distribution class for installation snapshots =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/lib/CPANPLUS/Dist/MM.pm new/CPANPLUS-0.9116/lib/CPANPLUS/Dist/MM.pm --- old/CPANPLUS-0.9115/lib/CPANPLUS/Dist/MM.pm 2011-11-07 22:45:54.000000000 +0100 +++ new/CPANPLUS-0.9116/lib/CPANPLUS/Dist/MM.pm 2011-12-22 00:09:03.000000000 +0100 @@ -23,7 +23,7 @@ =head1 NAME -CPANPLUS::Dist::MM +CPANPLUS::Dist::MM - distribution class for MakeMaker related modules =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/lib/CPANPLUS/Dist.pm new/CPANPLUS-0.9116/lib/CPANPLUS/Dist.pm --- old/CPANPLUS-0.9115/lib/CPANPLUS/Dist.pm 2011-12-20 22:04:10.000000000 +0100 +++ new/CPANPLUS-0.9116/lib/CPANPLUS/Dist.pm 2011-12-22 00:09:03.000000000 +0100 @@ -22,7 +22,7 @@ =head1 NAME -CPANPLUS::Dist +CPANPLUS::Dist - base class for plugins =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/lib/CPANPLUS/Error.pm new/CPANPLUS-0.9116/lib/CPANPLUS/Error.pm --- old/CPANPLUS-0.9115/lib/CPANPLUS/Error.pm 2011-12-20 01:28:23.000000000 +0100 +++ new/CPANPLUS-0.9116/lib/CPANPLUS/Error.pm 2011-12-22 00:09:03.000000000 +0100 @@ -8,7 +8,7 @@ =head1 NAME -CPANPLUS::Error +CPANPLUS::Error - error handling for CPANPLUS =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/lib/CPANPLUS/FAQ.pod new/CPANPLUS-0.9116/lib/CPANPLUS/FAQ.pod --- old/CPANPLUS-0.9115/lib/CPANPLUS/FAQ.pod 2011-04-22 23:42:44.000000000 +0200 +++ new/CPANPLUS-0.9116/lib/CPANPLUS/FAQ.pod 2011-12-22 00:09:03.000000000 +0100 @@ -2,6 +2,10 @@ =head1 NAME +CPANPLUS::FAQ - CPANPLUS Frequently Asked Questions + +=head1 NAME + CPANPLUS::FAQ =head1 DESCRIPTION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/lib/CPANPLUS/Hacking.pod new/CPANPLUS-0.9116/lib/CPANPLUS/Hacking.pod --- old/CPANPLUS-0.9115/lib/CPANPLUS/Hacking.pod 2011-07-07 22:43:20.000000000 +0200 +++ new/CPANPLUS-0.9116/lib/CPANPLUS/Hacking.pod 2011-12-22 00:09:03.000000000 +0100 @@ -2,7 +2,7 @@ =head1 NAME -CPANPLUS::Hacking +CPANPLUS::Hacking - developing CPANPLUS =head1 DESCRIPTION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/lib/CPANPLUS/Internals/Extract.pm new/CPANPLUS-0.9116/lib/CPANPLUS/Internals/Extract.pm --- old/CPANPLUS-0.9115/lib/CPANPLUS/Internals/Extract.pm 2011-04-22 23:42:44.000000000 +0200 +++ new/CPANPLUS-0.9116/lib/CPANPLUS/Internals/Extract.pm 2011-12-22 00:09:03.000000000 +0100 @@ -19,7 +19,7 @@ =head1 NAME -CPANPLUS::Internals::Extract +CPANPLUS::Internals::Extract - internals for archive extraction =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/lib/CPANPLUS/Internals/Fetch.pm new/CPANPLUS-0.9116/lib/CPANPLUS/Internals/Fetch.pm --- old/CPANPLUS-0.9115/lib/CPANPLUS/Internals/Fetch.pm 2011-04-22 23:42:44.000000000 +0200 +++ new/CPANPLUS-0.9116/lib/CPANPLUS/Internals/Fetch.pm 2011-12-22 00:09:03.000000000 +0100 @@ -19,7 +19,7 @@ =head1 NAME -CPANPLUS::Internals::Fetch +CPANPLUS::Internals::Fetch - internals for fetching files =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/lib/CPANPLUS/Internals/Report.pm new/CPANPLUS-0.9116/lib/CPANPLUS/Internals/Report.pm --- old/CPANPLUS-0.9115/lib/CPANPLUS/Internals/Report.pm 2011-12-09 16:29:42.000000000 +0100 +++ new/CPANPLUS-0.9116/lib/CPANPLUS/Internals/Report.pm 2011-12-22 00:09:03.000000000 +0100 @@ -20,7 +20,7 @@ =head1 NAME -CPANPLUS::Internals::Report +CPANPLUS::Internals::Report - internals for sending test reports =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/lib/CPANPLUS/Internals/Search.pm new/CPANPLUS-0.9116/lib/CPANPLUS/Internals/Search.pm --- old/CPANPLUS-0.9115/lib/CPANPLUS/Internals/Search.pm 2011-04-22 23:42:44.000000000 +0200 +++ new/CPANPLUS-0.9116/lib/CPANPLUS/Internals/Search.pm 2011-12-22 00:09:03.000000000 +0100 @@ -19,7 +19,7 @@ =head1 NAME -CPANPLUS::Internals::Search +CPANPLUS::Internals::Search - internals for searching for modules =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/lib/CPANPLUS/Internals/Source.pm new/CPANPLUS-0.9116/lib/CPANPLUS/Internals/Source.pm --- old/CPANPLUS-0.9115/lib/CPANPLUS/Internals/Source.pm 2011-07-12 14:59:41.000000000 +0200 +++ new/CPANPLUS-0.9116/lib/CPANPLUS/Internals/Source.pm 2011-12-22 00:09:03.000000000 +0100 @@ -74,7 +74,7 @@ =head1 NAME -CPANPLUS::Internals::Source +CPANPLUS::Internals::Source - internals for updating source files =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/lib/CPANPLUS/Internals/Utils.pm new/CPANPLUS-0.9116/lib/CPANPLUS/Internals/Utils.pm --- old/CPANPLUS-0.9115/lib/CPANPLUS/Internals/Utils.pm 2011-09-01 14:36:18.000000000 +0200 +++ new/CPANPLUS-0.9116/lib/CPANPLUS/Internals/Utils.pm 2011-12-22 00:09:03.000000000 +0100 @@ -18,7 +18,7 @@ =head1 NAME -CPANPLUS::Internals::Utils +CPANPLUS::Internals::Utils - convenience functions for CPANPLUS =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/lib/CPANPLUS/Internals.pm new/CPANPLUS-0.9116/lib/CPANPLUS/Internals.pm --- old/CPANPLUS-0.9115/lib/CPANPLUS/Internals.pm 2011-12-20 22:15:27.000000000 +0100 +++ new/CPANPLUS-0.9116/lib/CPANPLUS/Internals.pm 2012-01-05 23:51:48.000000000 +0100 @@ -42,13 +42,13 @@ CPANPLUS::Internals::Report ]; -$VERSION = "0.9115"; +$VERSION = "0.9116"; =pod =head1 NAME -CPANPLUS::Internals +CPANPLUS::Internals - CPANPLUS internals =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/lib/CPANPLUS/Module/Author/Fake.pm new/CPANPLUS-0.9116/lib/CPANPLUS/Module/Author/Fake.pm --- old/CPANPLUS-0.9115/lib/CPANPLUS/Module/Author/Fake.pm 2011-04-22 23:42:44.000000000 +0200 +++ new/CPANPLUS-0.9116/lib/CPANPLUS/Module/Author/Fake.pm 2011-12-22 00:09:03.000000000 +0100 @@ -17,7 +17,7 @@ =head1 NAME -CPANPLUS::Module::Author::Fake +CPANPLUS::Module::Author::Fake - dummy author object for CPANPLUS =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/lib/CPANPLUS/Module/Author.pm new/CPANPLUS-0.9116/lib/CPANPLUS/Module/Author.pm --- old/CPANPLUS-0.9115/lib/CPANPLUS/Module/Author.pm 2011-04-22 23:42:44.000000000 +0200 +++ new/CPANPLUS-0.9116/lib/CPANPLUS/Module/Author.pm 2011-12-22 00:09:03.000000000 +0100 @@ -13,7 +13,7 @@ =head1 NAME -CPANPLUS::Module::Author +CPANPLUS::Module::Author - CPAN author object for CPANPLUS =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/lib/CPANPLUS/Module/Checksums.pm new/CPANPLUS-0.9116/lib/CPANPLUS/Module/Checksums.pm --- old/CPANPLUS-0.9115/lib/CPANPLUS/Module/Checksums.pm 2011-04-22 23:42:44.000000000 +0200 +++ new/CPANPLUS-0.9116/lib/CPANPLUS/Module/Checksums.pm 2011-12-22 00:09:03.000000000 +0100 @@ -19,7 +19,7 @@ =head1 NAME -CPANPLUS::Module::Checksums +CPANPLUS::Module::Checksums - checking the checksum of a distribution =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/lib/CPANPLUS/Module/Fake.pm new/CPANPLUS-0.9116/lib/CPANPLUS/Module/Fake.pm --- old/CPANPLUS-0.9115/lib/CPANPLUS/Module/Fake.pm 2011-04-22 23:42:44.000000000 +0200 +++ new/CPANPLUS-0.9116/lib/CPANPLUS/Module/Fake.pm 2011-12-22 00:09:03.000000000 +0100 @@ -17,7 +17,7 @@ =head1 NAME -CPANPLUS::Module::Fake +CPANPLUS::Module::Fake - fake module object for internal use =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/lib/CPANPLUS/Module.pm new/CPANPLUS-0.9116/lib/CPANPLUS/Module.pm --- old/CPANPLUS-0.9115/lib/CPANPLUS/Module.pm 2011-11-07 23:17:23.000000000 +0100 +++ new/CPANPLUS-0.9116/lib/CPANPLUS/Module.pm 2011-12-22 00:09:03.000000000 +0100 @@ -27,7 +27,7 @@ =head1 NAME -CPANPLUS::Module +CPANPLUS::Module - CPAN module objects for CPANPLUS =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/lib/CPANPLUS/Selfupdate.pm new/CPANPLUS-0.9116/lib/CPANPLUS/Selfupdate.pm --- old/CPANPLUS-0.9115/lib/CPANPLUS/Selfupdate.pm 2011-11-07 23:14:37.000000000 +0100 +++ new/CPANPLUS-0.9116/lib/CPANPLUS/Selfupdate.pm 2011-12-22 00:09:03.000000000 +0100 @@ -13,7 +13,7 @@ =head1 NAME -CPANPLUS::Selfupdate +CPANPLUS::Selfupdate - self-updating for CPANPLUS =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/lib/CPANPLUS/Shell/Default/Plugins/CustomSource.pm new/CPANPLUS-0.9116/lib/CPANPLUS/Shell/Default/Plugins/CustomSource.pm --- old/CPANPLUS-0.9115/lib/CPANPLUS/Shell/Default/Plugins/CustomSource.pm 2011-04-22 23:42:44.000000000 +0200 +++ new/CPANPLUS-0.9116/lib/CPANPLUS/Shell/Default/Plugins/CustomSource.pm 2011-12-22 00:09:03.000000000 +0100 @@ -9,7 +9,7 @@ =head1 NAME -CPANPLUS::Shell::Default::Plugins::CustomSource +CPANPLUS::Shell::Default::Plugins::CustomSource - add custom sources to CPANPLUS =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/lib/CPANPLUS/Shell/Default/Plugins/Remote.pm new/CPANPLUS-0.9116/lib/CPANPLUS/Shell/Default/Plugins/Remote.pm --- old/CPANPLUS-0.9115/lib/CPANPLUS/Shell/Default/Plugins/Remote.pm 2011-04-22 23:42:44.000000000 +0200 +++ new/CPANPLUS-0.9116/lib/CPANPLUS/Shell/Default/Plugins/Remote.pm 2011-12-22 00:09:03.000000000 +0100 @@ -9,7 +9,7 @@ =head1 NAME -CPANPLUS::Shell::Default::Plugins::Remote +CPANPLUS::Shell::Default::Plugins::Remote - connect to a remote CPANPLUS =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/lib/CPANPLUS/Shell/Default/Plugins/Source.pm new/CPANPLUS-0.9116/lib/CPANPLUS/Shell/Default/Plugins/Source.pm --- old/CPANPLUS-0.9115/lib/CPANPLUS/Shell/Default/Plugins/Source.pm 2011-04-22 23:42:44.000000000 +0200 +++ new/CPANPLUS-0.9116/lib/CPANPLUS/Shell/Default/Plugins/Source.pm 2011-12-22 00:09:03.000000000 +0100 @@ -6,7 +6,7 @@ =head1 NAME -CPANPLUS::Shell::Default::Plugins::Source +CPANPLUS::Shell::Default::Plugins::Source - read in CPANPLUS commands =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/lib/CPANPLUS/Shell/Default.pm new/CPANPLUS-0.9116/lib/CPANPLUS/Shell/Default.pm --- old/CPANPLUS-0.9115/lib/CPANPLUS/Shell/Default.pm 2011-12-20 22:15:27.000000000 +0100 +++ new/CPANPLUS-0.9116/lib/CPANPLUS/Shell/Default.pm 2012-01-05 23:51:48.000000000 +0100 @@ -26,7 +26,7 @@ BEGIN { use vars qw[ $VERSION @ISA ]; @ISA = qw[ CPANPLUS::Shell::_Base::ReadLine ]; - $VERSION = "0.9115"; + $VERSION = "0.9116"; } load CPANPLUS::Shell; @@ -56,6 +56,7 @@ 'u' => '_uninstall', '/' => '_meta', # undocumented for now 'c' => '_reports', + 'e' => '_reload_shell', }; ### free letters: e g j k n y ### @@ -73,7 +74,7 @@ =head1 NAME -CPANPLUS::Shell::Default +CPANPLUS::Shell::Default - the default CPANPLUS shell =head1 SYNOPSIS @@ -141,6 +142,7 @@ cpanp> w # show last search results again cpanp> q # quit the shell + cpanp> e # exit the shell and reload cpanp> /plugins # list available plugins cpanp> /? PLUGIN # list help test of <PLUGIN> @@ -544,6 +546,7 @@ loc('[General]' ), loc(' h | ? # display help' ), loc(' q # exit' ), +loc(' e # exit and reload' ), loc(' v # version information' ), loc('[Search]' ), loc(' a AUTHOR ... # search by author(s)' ), @@ -1896,6 +1899,10 @@ } } +sub _reload_shell { + { exec ($^X, '-MCPANPLUS', '-e', 'shell') }; print STDERR "couldn't exec foo: $!"; +} + 1; __END__ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/lib/CPANPLUS/Shell.pm new/CPANPLUS-0.9116/lib/CPANPLUS/Shell.pm --- old/CPANPLUS-0.9115/lib/CPANPLUS/Shell.pm 2011-04-22 23:42:44.000000000 +0200 +++ new/CPANPLUS-0.9116/lib/CPANPLUS/Shell.pm 2011-12-22 00:09:03.000000000 +0100 @@ -20,7 +20,7 @@ =head1 NAME -CPANPLUS::Shell +CPANPLUS::Shell - base class for CPANPLUS shells =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPANPLUS-0.9115/lib/CPANPLUS.pm new/CPANPLUS-0.9116/lib/CPANPLUS.pm --- old/CPANPLUS-0.9115/lib/CPANPLUS.pm 2011-12-20 22:15:27.000000000 +0100 +++ new/CPANPLUS-0.9116/lib/CPANPLUS.pm 2012-01-05 23:51:48.000000000 +0100 @@ -13,7 +13,7 @@ use vars qw( @EXPORT @ISA $VERSION ); @EXPORT = qw( shell fetch get install ); @ISA = qw( Exporter ); - $VERSION = "0.9115"; #have to hardcode or cpan.org gets unhappy + $VERSION = "0.9116"; #have to hardcode or cpan.org gets unhappy } ### purely for backward compatibility, so we can call it from the commandline: -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org