r37887 - in /branches/upstream/libclass-c3-adopt-next-perl/current: ./ inc/Module/ inc/Module/Install/ lib/Class/C3/Adopt/
nhandler-guest at users.alioth.debian.org
nhandler-guest at users.alioth.debian.org
Tue Jun 9 00:18:41 UTC 2009
Author: nhandler-guest
Date: Tue Jun 9 00:17:28 2009
New Revision: 37887
URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=37887
Log:
[svn-upgrade] Integrating new upstream version, libclass-c3-adopt-next-perl (0.12)
Added:
branches/upstream/libclass-c3-adopt-next-perl/current/README
Modified:
branches/upstream/libclass-c3-adopt-next-perl/current/Changes
branches/upstream/libclass-c3-adopt-next-perl/current/MANIFEST
branches/upstream/libclass-c3-adopt-next-perl/current/META.yml
branches/upstream/libclass-c3-adopt-next-perl/current/Makefile.PL
branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install.pm
branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install/Base.pm
branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install/Can.pm
branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install/Fetch.pm
branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install/Makefile.pm
branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install/Metadata.pm
branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install/Win32.pm
branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install/WriteAll.pm
branches/upstream/libclass-c3-adopt-next-perl/current/lib/Class/C3/Adopt/NEXT.pm
Modified: branches/upstream/libclass-c3-adopt-next-perl/current/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-c3-adopt-next-perl/current/Changes?rev=37887&op=diff
==============================================================================
--- branches/upstream/libclass-c3-adopt-next-perl/current/Changes (original)
+++ branches/upstream/libclass-c3-adopt-next-perl/current/Changes Tue Jun 9 00:17:28 2009
@@ -1,3 +1,7 @@
+0.12 Mon, 08 Jun 2009 14:16:34 +0200
+ * Update copyright notice.
+ * A couple of pod whitespace changes.
+
0.11 Tue, 19 May 2009 18:34:17 +0100
* Change wording of warning to be more clear.
Modified: branches/upstream/libclass-c3-adopt-next-perl/current/MANIFEST
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-c3-adopt-next-perl/current/MANIFEST?rev=37887&op=diff
==============================================================================
--- branches/upstream/libclass-c3-adopt-next-perl/current/MANIFEST (original)
+++ branches/upstream/libclass-c3-adopt-next-perl/current/MANIFEST Tue Jun 9 00:17:28 2009
@@ -12,6 +12,7 @@
Makefile.PL
MANIFEST This list of files
META.yml
+README
t/basic.t
t/disable.t
t/disable_regex.t
Modified: branches/upstream/libclass-c3-adopt-next-perl/current/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-c3-adopt-next-perl/current/META.yml?rev=37887&op=diff
==============================================================================
--- branches/upstream/libclass-c3-adopt-next-perl/current/META.yml (original)
+++ branches/upstream/libclass-c3-adopt-next-perl/current/META.yml Tue Jun 9 00:17:28 2009
@@ -8,7 +8,7 @@
configure_requires:
ExtUtils::MakeMaker: 6.42
distribution_type: module
-generated_by: 'Module::Install version 0.87'
+generated_by: 'Module::Install version 0.91'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -24,5 +24,7 @@
MRO::Compat: 0
NEXT: 0
resources:
+ bugtracker: http://rt.cpan.org/Public/Dist/Display.html?Name=Class-C3-Adopt-NEXT
license: http://dev.perl.org/licenses/
-version: 0.11
+ repository: git://github.com/rafl/class-c3-adopt-next.git
+version: 0.12
Modified: branches/upstream/libclass-c3-adopt-next-perl/current/Makefile.PL
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-c3-adopt-next-perl/current/Makefile.PL?rev=37887&op=diff
==============================================================================
--- branches/upstream/libclass-c3-adopt-next-perl/current/Makefile.PL (original)
+++ branches/upstream/libclass-c3-adopt-next-perl/current/Makefile.PL Tue Jun 9 00:17:28 2009
@@ -11,6 +11,9 @@
test_requires 'Test::Exception' => '0.27';
+repository 'git://github.com/rafl/class-c3-adopt-next.git';
+bugtracker 'http://rt.cpan.org/Public/Dist/Display.html?Name=Class-C3-Adopt-NEXT';
+
extra_tests;
postamble(<<"EOM");
Added: branches/upstream/libclass-c3-adopt-next-perl/current/README
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-c3-adopt-next-perl/current/README?rev=37887&op=file
==============================================================================
--- branches/upstream/libclass-c3-adopt-next-perl/current/README (added)
+++ branches/upstream/libclass-c3-adopt-next-perl/current/README Tue Jun 9 00:17:28 2009
@@ -1,0 +1,146 @@
+NAME
+ Class::C3::Adopt::NEXT - make NEXT suck less
+
+SYNOPSIS
+ package MyApp::Plugin::FooBar;
+ #use NEXT;
+ use Class::C3::Adopt::NEXT;
+ # or 'use Class::C3::Adopt::NEXT -no_warn;' to suppress warnings
+
+ # Or use warnings::register
+ # no warnings 'Class::C3::Adopt::NEXT';
+
+ # Or suppress warnings in a set of modules from one place
+ # no Class::C3::Adopt::NEXT qw/ Module1 Module2 Module3 /;
+ # Or suppress using a regex
+ # no Class::C3::Adopt::NEXT qr/^Module\d$/;
+
+ sub a_method {
+ my ($self) = @_;
+ # Do some stuff
+
+ # Re-dispatch method
+ # Note that this will generate a warning the _first_ time the package
+ # uses NEXT unless you un comment the 'no warnings' line above.
+ $self->NEXT::method();
+ }
+
+DESCRIPTION
+ NEXT was a good solution a few years ago, but isn't any more. It's slow,
+ and the order in which it re-dispatches methods appears random at times.
+ It also encourages bad programming practices, as you end up with code to
+ re-dispatch methods when all you really wanted to do was run some code
+ before or after a method fired.
+
+ However, if you have a large application, then weaning yourself off
+ "NEXT" isn't easy.
+
+ This module is intended as a drop-in replacement for NEXT, supporting
+ the same interface, but using Class::C3 to do the hard work. You can
+ then write new code without "NEXT", and migrate individual source files
+ to use "Class::C3" or method modifiers as appropriate, at whatever pace
+ you're comfortable with.
+
+WARNINGS
+ This module will warn once for each package using NEXT. It uses
+ warnings::register, and so can be disabled like by adding "no warnings
+ 'Class::C3::Adopt::NEXT';" to each package which generates a warning, or
+ adding "use Class::C3::Adopt::NEXT -no_warn;", or disable multiple
+ modules at once by saying:
+
+ no Class::C3::Adopt::NEXT qw/ Module1 Module2 Module3 /;
+
+ somewhere before the warnings are first triggered. You can also setup
+ entire name spaces of modules which will not warn using a regex, e.g.
+
+ no Class::C3::Adopt::NEXT qr/^Module\d$/;
+
+MIGRATING
+ Current code using NEXT
+ You add "use MRO::Compat" to the top of a package as you start
+ converting it, and gradually replace your calls to "NEXT::method()" with
+ "maybe::next::method()", and calls to "NEXT::ACTUAL::method()" with
+ "next::method()".
+
+ Example:
+
+ sub yourmethod {
+ my $self = shift;
+
+ # $self->NEXT::yourmethod(@_); becomes
+ $self->maybe::next::method();
+ }
+
+ sub othermethod {
+ my $self = shift;
+
+ # $self->NEXT::ACTUAL::yourmethodname(); becomes
+ $self->next::method();
+ }
+
+ On systems with Class::C3::XS present, this will automatically be used
+ to speed up method re-dispatch. If you are running perl version 5.9.5 or
+ greater then the C3 method resolution algorithm is included in perl.
+ Correct use of MRO::Compat as shown above allows your code to be
+ seamlessly forward and backwards compatible, taking advantage of native
+ versions if available, but falling back to using pure perl "Class::C3".
+
+ Writing new code
+ Use Moose and make all of your plugins Moose::Roles, then use method
+ modifiers to wrap methods.
+
+ Example:
+
+ package MyApp::Role::FooBar;
+ use Moose::Role;
+
+ before 'a_method' => sub {
+ my ($self) = @_;
+ # Do some stuff
+ };
+
+ around 'a_method' => sub {
+ my $orig = shift;
+ my $self = shift;
+ # Do some stuff before
+ my $ret = $self->$orig(@_); # Run wrapped method (or not!)
+ # Do some stuff after
+ return $ret;
+ };
+
+ package MyApp;
+ use Moose;
+
+ with 'MyApp::Role::FooBar';
+
+CAVEATS
+ There are some inheritance hierarchies that it is possible to create
+ which cannot be resolved to a simple C3 hierarchy. In that case, this
+ module will fall back to using "NEXT". In this case a warning will be
+ emitted.
+
+ Because calculating the MRO of every class every time "->NEXT::foo" is
+ used from within it is too expensive, runtime manipulations of @ISA are
+ prohibited.
+
+FUNCTIONS
+ This module replaces "NEXT::AUTOLOAD" with it's own version. If warnings
+ are enabled then a warning will be emitted on the first use of "NEXT" by
+ each package.
+
+SEE ALSO
+ MRO::Compat and Class::C3 for method re-dispatch and Moose for method
+ modifiers and roles.
+
+ NEXT for documentation on the functionality you'll be removing.
+
+AUTHORS
+ Florian Ragwitz "rafl at debian.org"
+
+ Tomas Doran "bobtfish at bobtfish.net"
+
+COPYRIGHT AND LICENSE
+ Copyright (c) 2008, 2009 Florian Ragwitz
+
+ You may distribute this code under the same terms as Perl itself.
+
Modified: branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install.pm?rev=37887&op=diff
==============================================================================
--- branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install.pm (original)
+++ branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install.pm Tue Jun 9 00:17:28 2009
@@ -28,7 +28,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.87';
+ $VERSION = '0.91';
# Storage for the pseudo-singleton
$MAIN = undef;
@@ -353,7 +353,7 @@
if ( $] >= 5.006 ) {
open( FH, '<', $_[0] ) or die "open($_[0]): $!";
} else {
- open( FH, "< $_[0]" ) or die "open($_[0]): $!";
+ open( FH, "< $_[0]" ) or die "open($_[0]): $!";
}
my $string = do { local $/; <FH> };
close FH or die "close($_[0]): $!";
@@ -384,7 +384,7 @@
if ( $] >= 5.006 ) {
open( FH, '>', $_[0] ) or die "open($_[0]): $!";
} else {
- open( FH, "> $_[0]" ) or die "open($_[0]): $!";
+ open( FH, "> $_[0]" ) or die "open($_[0]): $!";
}
foreach ( 1 .. $#_ ) {
print FH $_[$_] or die "print($_[0]): $!";
Modified: branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install/Base.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install/Base.pm?rev=37887&op=diff
==============================================================================
--- branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install/Base.pm (original)
+++ branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install/Base.pm Tue Jun 9 00:17:28 2009
@@ -4,7 +4,7 @@
use strict 'vars';
use vars qw{$VERSION};
BEGIN {
- $VERSION = '0.87';
+ $VERSION = '0.91';
}
# Suspend handler for "redefined" warnings
@@ -13,42 +13,34 @@
$SIG{__WARN__} = sub { $w };
}
-### This is the ONLY module that shouldn't have strict on
-# use strict;
-
-#line 45
+#line 42
sub new {
- my ($class, %args) = @_;
-
- foreach my $method ( qw(call load) ) {
- next if defined &{"$class\::$method"};
- *{"$class\::$method"} = sub {
- shift()->_top->$method(@_);
- };
+ my $class = shift;
+ unless ( defined &{"${class}::call"} ) {
+ *{"${class}::call"} = sub { shift->_top->call(@_) };
}
-
- bless( \%args, $class );
+ unless ( defined &{"${class}::load"} ) {
+ *{"${class}::load"} = sub { shift->_top->load(@_) };
+ }
+ bless { @_ }, $class;
}
-#line 66
+#line 61
sub AUTOLOAD {
- my $self = shift;
local $@;
- my $autoload = eval {
- $self->_top->autoload
- } or return;
- goto &$autoload;
+ my $func = eval { shift->_top->autoload } or return;
+ goto &$func;
}
-#line 83
+#line 75
sub _top {
$_[0]->{_top};
}
-#line 98
+#line 90
sub admin {
$_[0]->_top->{admin}
@@ -56,7 +48,7 @@
Module::Install::Base::FakeAdmin->new;
}
-#line 114
+#line 106
sub is_admin {
$_[0]->admin->VERSION;
@@ -83,4 +75,4 @@
1;
-#line 162
+#line 154
Modified: branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install/Can.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install/Can.pm?rev=37887&op=diff
==============================================================================
--- branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install/Can.pm (original)
+++ branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install/Can.pm Tue Jun 9 00:17:28 2009
@@ -2,16 +2,16 @@
package Module::Install::Can;
use strict;
-use Module::Install::Base;
-use Config ();
-use File::Spec ();
-use ExtUtils::MakeMaker ();
+use Config ();
+use File::Spec ();
+use ExtUtils::MakeMaker ();
+use Module::Install::Base ();
-use vars qw{$VERSION $ISCORE @ISA};
+use vars qw{$VERSION @ISA $ISCORE};
BEGIN {
- $VERSION = '0.87';
+ $VERSION = '0.91';
+ @ISA = 'Module::Install::Base';
$ISCORE = 1;
- @ISA = qw{Module::Install::Base};
}
# check if we can load some module
Modified: branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install/Fetch.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install/Fetch.pm?rev=37887&op=diff
==============================================================================
--- branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install/Fetch.pm (original)
+++ branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install/Fetch.pm Tue Jun 9 00:17:28 2009
@@ -2,13 +2,13 @@
package Module::Install::Fetch;
use strict;
-use Module::Install::Base;
+use Module::Install::Base ();
-use vars qw{$VERSION $ISCORE @ISA};
+use vars qw{$VERSION @ISA $ISCORE};
BEGIN {
- $VERSION = '0.87';
+ $VERSION = '0.91';
+ @ISA = 'Module::Install::Base';
$ISCORE = 1;
- @ISA = qw{Module::Install::Base};
}
sub get_file {
Modified: branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install/Makefile.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install/Makefile.pm?rev=37887&op=diff
==============================================================================
--- branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install/Makefile.pm (original)
+++ branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install/Makefile.pm Tue Jun 9 00:17:28 2009
@@ -2,14 +2,14 @@
package Module::Install::Makefile;
use strict 'vars';
-use Module::Install::Base;
-use ExtUtils::MakeMaker ();
-
-use vars qw{$VERSION $ISCORE @ISA};
+use ExtUtils::MakeMaker ();
+use Module::Install::Base ();
+
+use vars qw{$VERSION @ISA $ISCORE};
BEGIN {
- $VERSION = '0.87';
+ $VERSION = '0.91';
+ @ISA = 'Module::Install::Base';
$ISCORE = 1;
- @ISA = qw{Module::Install::Base};
}
sub Makefile { $_[0] }
Modified: branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install/Metadata.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install/Metadata.pm?rev=37887&op=diff
==============================================================================
--- branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install/Metadata.pm (original)
+++ branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install/Metadata.pm Tue Jun 9 00:17:28 2009
@@ -2,18 +2,17 @@
package Module::Install::Metadata;
use strict 'vars';
-use Module::Install::Base;
+use Module::Install::Base ();
use vars qw{$VERSION @ISA $ISCORE};
BEGIN {
- $VERSION = '0.87';
- @ISA = qw{Module::Install::Base};
+ $VERSION = '0.91';
+ @ISA = 'Module::Install::Base';
$ISCORE = 1;
}
my @boolean_keys = qw{
sign
- mymeta
};
my @scalar_keys = qw{
@@ -440,21 +439,21 @@
/ixms ) {
my $license_text = $1;
my @phrases = (
- 'under the same (?:terms|license) as perl 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,
+ 'under the same (?:terms|license) as (?: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+}g;
@@ -506,17 +505,29 @@
}
}
+sub test_requires_from {
+ my $self = shift;
+ my $content = Module::Install::_readperl($_[0]);
+ my @requires = $content =~ m/^use\s+([^\W\d]\w*(?:::\w+)*)\s+([\d\.]+)/mg;
+ while ( @requires ) {
+ my $module = shift @requires;
+ my $version = shift @requires;
+ $self->test_requires( $module => $version );
+ }
+}
+
# Convert triple-part versions (eg, 5.6.1 or 5.8.9) to
# numbers (eg, 5.006001 or 5.008009).
# Also, convert double-part versions (eg, 5.8)
sub _perl_version {
my $v = $_[-1];
- $v =~ s/^([1-9])\.([1-9]\d?\d?)$/sprintf("%d.%03d",$1,$2)/e;
+ $v =~ s/^([1-9])\.([1-9]\d?\d?)$/sprintf("%d.%03d",$1,$2)/e;
$v =~ s/^([1-9])\.([1-9]\d?\d?)\.(0|[1-9]\d?\d?)$/sprintf("%d.%03d%03d",$1,$2,$3 || 0)/e;
$v =~ s/(\.\d\d\d)000$/$1/;
$v =~ s/_.+$//;
if ( ref($v) ) {
- $v = $v + 0; # Numify
+ # Numify
+ $v = $v + 0;
}
return $v;
}
@@ -526,21 +537,56 @@
######################################################################
-# MYMETA.yml Support
+# MYMETA Support
sub WriteMyMeta {
die "WriteMyMeta has been deprecated";
}
-sub write_mymeta {
- my $self = shift;
-
- # If there's no existing META.yml there is nothing we can do
- return unless -f 'META.yml';
+sub write_mymeta_yaml {
+ my $self = shift;
# We need YAML::Tiny to write the MYMETA.yml file
unless ( eval { require YAML::Tiny; 1; } ) {
return 1;
+ }
+
+ # Generate the data
+ my $meta = $self->_write_mymeta_data or return 1;
+
+ # Save as the MYMETA.yml file
+ print "Writing MYMETA.yml\n";
+ YAML::Tiny::DumpFile('MYMETA.yml', $meta);
+}
+
+sub write_mymeta_json {
+ my $self = shift;
+
+ # We need JSON to write the MYMETA.json file
+ unless ( eval { require JSON; 1; } ) {
+ return 1;
+ }
+
+ # Generate the data
+ my $meta = $self->_write_mymeta_data or return 1;
+
+ # Save as the MYMETA.yml file
+ print "Writing MYMETA.json\n";
+ Module::Install::_write(
+ 'MYMETA.json',
+ JSON->new->pretty(1)->canonical->encode($meta),
+ );
+}
+
+sub _write_mymeta_data {
+ my $self = shift;
+
+ # If there's no existing META.yml there is nothing we can do
+ return undef unless -f 'META.yml';
+
+ # We need Parse::CPAN::Meta to load the file
+ unless ( eval { require Parse::CPAN::Meta; 1; } ) {
+ return undef;
}
# Merge the perl version into the dependencies
@@ -558,7 +604,7 @@
}
# Load the advisory META.yml file
- my @yaml = YAML::Tiny::LoadFile('META.yml');
+ my @yaml = Parse::CPAN::Meta::LoadFile('META.yml');
my $meta = $yaml[0];
# Overwrite the non-configure dependency hashs
@@ -572,9 +618,7 @@
$meta->{build_requires} = { map { @$_ } @{ $val->{build_requires} } };
}
- # Save as the MYMETA.yml file
- print "Writing MYMETA.yml\n";
- YAML::Tiny::DumpFile('MYMETA.yml', $meta);
+ return $meta;
}
1;
Modified: branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install/Win32.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install/Win32.pm?rev=37887&op=diff
==============================================================================
--- branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install/Win32.pm (original)
+++ branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install/Win32.pm Tue Jun 9 00:17:28 2009
@@ -2,12 +2,12 @@
package Module::Install::Win32;
use strict;
-use Module::Install::Base;
+use Module::Install::Base ();
use vars qw{$VERSION @ISA $ISCORE};
BEGIN {
- $VERSION = '0.87';
- @ISA = qw{Module::Install::Base};
+ $VERSION = '0.91';
+ @ISA = 'Module::Install::Base';
$ISCORE = 1;
}
Modified: branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install/WriteAll.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install/WriteAll.pm?rev=37887&op=diff
==============================================================================
--- branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install/WriteAll.pm (original)
+++ branches/upstream/libclass-c3-adopt-next-perl/current/inc/Module/Install/WriteAll.pm Tue Jun 9 00:17:28 2009
@@ -2,11 +2,11 @@
package Module::Install::WriteAll;
use strict;
-use Module::Install::Base;
+use Module::Install::Base ();
use vars qw{$VERSION @ISA $ISCORE};
BEGIN {
- $VERSION = '0.87';
+ $VERSION = '0.91';;
@ISA = qw{Module::Install::Base};
$ISCORE = 1;
}
@@ -41,8 +41,18 @@
# The Makefile write process adds a couple of dependencies,
# so write the META.yml files after the Makefile.
- $self->Meta->write if $args{meta};
- $self->Meta->write_mymeta if $self->mymeta;
+ if ( $args{meta} ) {
+ $self->Meta->write;
+ }
+
+ # Experimental support for MYMETA
+ if ( $ENV{X_MYMETA} ) {
+ if ( $ENV{X_MYMETA} eq 'JSON' ) {
+ $self->Meta->write_mymeta_json;
+ } else {
+ $self->Meta->write_mymeta_yaml;
+ }
+ }
return 1;
}
Modified: branches/upstream/libclass-c3-adopt-next-perl/current/lib/Class/C3/Adopt/NEXT.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-c3-adopt-next-perl/current/lib/Class/C3/Adopt/NEXT.pm?rev=37887&op=diff
==============================================================================
--- branches/upstream/libclass-c3-adopt-next-perl/current/lib/Class/C3/Adopt/NEXT.pm (original)
+++ branches/upstream/libclass-c3-adopt-next-perl/current/lib/Class/C3/Adopt/NEXT.pm Tue Jun 9 00:17:28 2009
@@ -8,7 +8,7 @@
use List::MoreUtils qw/none/;
use warnings::register;
-our $VERSION = '0.11';
+our $VERSION = '0.12';
{
my %c3_mro_ok;
@@ -115,27 +115,27 @@
=head1 DESCRIPTION
-L<NEXT> was a good solution a few
-years ago, but isn't any more. It's slow, and the order in which it
-re-dispatches methods appears random at times. It also encourages bad
-programming practices, as you end up with code to re-dispatch methods when all
-you really wanted to do was run some code before or after a method fired.
-
-However, if you have a large application, then weaning yourself off C<NEXT> isn't
-easy.
+L<NEXT> was a good solution a few years ago, but isn't any more. It's slow,
+and the order in which it re-dispatches methods appears random at times. It
+also encourages bad programming practices, as you end up with code to
+re-dispatch methods when all you really wanted to do was run some code before
+or after a method fired.
+
+However, if you have a large application, then weaning yourself off C<NEXT>
+isn't easy.
This module is intended as a drop-in replacement for NEXT, supporting the same
interface, but using L<Class::C3> to do the hard work. You can then write new
-code without C<NEXT>, and migrate individual source files to use C<Class::C3> or
-method modifiers as appropriate, at whatever pace you're comfortable with.
+code without C<NEXT>, and migrate individual source files to use C<Class::C3>
+or method modifiers as appropriate, at whatever pace you're comfortable with.
=head1 WARNINGS
This module will warn once for each package using NEXT. It uses
L<warnings::register>, and so can be disabled like by adding C<no warnings
-'Class::C3::Adopt::NEXT';> to each package which generates a warning, or
-adding C<use Class::C3::Adopt::NEXT -no_warn;>, or disable multiple modules at
-once by saying:
+'Class::C3::Adopt::NEXT';> to each package which generates a warning, or adding
+C<use Class::C3::Adopt::NEXT -no_warn;>, or disable multiple modules at once by
+saying:
no Class::C3::Adopt::NEXT qw/ Module1 Module2 Module3 /;
@@ -157,7 +157,7 @@
sub yourmethod {
my $self = shift;
-
+
# $self->NEXT::yourmethod(@_); becomes
$self->maybe::next::method();
}
@@ -171,10 +171,10 @@
On systems with L<Class::C3::XS> present, this will automatically be used to
speed up method re-dispatch. If you are running perl version 5.9.5 or greater
-then the C3 method resolution algorithm is included in perl. Correct use
-of L<MRO::Compat> as shown above allows your code to be seamlessly forward
-and backwards compatible, taking advantage of native versions if available,
-but falling back to using pure perl C<Class::C3>.
+then the C3 method resolution algorithm is included in perl. Correct use of
+L<MRO::Compat> as shown above allows your code to be seamlessly forward and
+backwards compatible, taking advantage of native versions if available, but
+falling back to using pure perl C<Class::C3>.
=head2 Writing new code
@@ -211,20 +211,20 @@
cannot be resolved to a simple C3 hierarchy. In that case, this module will
fall back to using C<NEXT>. In this case a warning will be emitted.
-Because calculating the MRO of every class every time C<< ->NEXT::foo >> is used
-from within it is too expensive, runtime manipulations of C<@ISA> are
+Because calculating the MRO of every class every time C<< ->NEXT::foo >> is
+used from within it is too expensive, runtime manipulations of C<@ISA> are
prohibited.
=head1 FUNCTIONS
-This module replaces C<NEXT::AUTOLOAD> with it's own version. If warnings
-are enabled then a warning will be emitted on the first use of C<NEXT> by
-each package.
+This module replaces C<NEXT::AUTOLOAD> with it's own version. If warnings are
+enabled then a warning will be emitted on the first use of C<NEXT> by each
+package.
=head1 SEE ALSO
-L<MRO::Compat> and L<Class::C3> for method re-dispatch and L<Moose> for
-method modifiers and L<roles|Moose::Role>.
+L<MRO::Compat> and L<Class::C3> for method re-dispatch and L<Moose> for method
+modifiers and L<roles|Moose::Role>.
L<NEXT> for documentation on the functionality you'll be removing.
@@ -236,7 +236,7 @@
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2008 Florian Ragwitz
+Copyright (c) 2008, 2009 Florian Ragwitz
You may distribute this code under the same terms as Perl itself.
More information about the Pkg-perl-cvs-commits
mailing list