summaryrefslogtreecommitdiff
path: root/cpan
diff options
context:
space:
mode:
authorChris 'BinGOs' Williams <chris@bingosnet.co.uk>2011-09-07 10:00:41 +0100
committerChris 'BinGOs' Williams <chris@bingosnet.co.uk>2011-09-07 10:00:41 +0100
commitd39de89300b9384bad8b2cf88917ce9f104ae8b2 (patch)
tree9f513a17203ec2d79d9c2c09a452f8d5553f6d66 /cpan
parent924d3af1d7b5591ebab03fef27f1aef6364027da (diff)
downloadperl-d39de89300b9384bad8b2cf88917ce9f104ae8b2.tar.gz
Update Module-Metadata to CPAN version 1.000006
[DELTA] 1.0.6 2011-08-29 04:00:00 - Support PACKAGE BLOCK syntax (VPIT) [Additional info] Reapplied the changes made by Craig Berry for VMS in commit 63f27fd71dd22aa00021eb1e4fde4faa55ec9524 Raised [https://rt.cpan.org/Public/Bug/Display.html?id=70781] to upstream these changes.
Diffstat (limited to 'cpan')
-rw-r--r--cpan/Module-Metadata/lib/Module/Metadata.pm4
-rw-r--r--cpan/Module-Metadata/t/metadata.t44
2 files changed, 42 insertions, 6 deletions
diff --git a/cpan/Module-Metadata/lib/Module/Metadata.pm b/cpan/Module-Metadata/lib/Module/Metadata.pm
index 41d8214ef5..2016967d09 100644
--- a/cpan/Module-Metadata/lib/Module/Metadata.pm
+++ b/cpan/Module-Metadata/lib/Module/Metadata.pm
@@ -11,7 +11,7 @@ package Module::Metadata;
use strict;
use vars qw($VERSION);
-$VERSION = '1.000005_01';
+$VERSION = '1.000006';
$VERSION = eval $VERSION;
use File::Spec;
@@ -36,7 +36,7 @@ my $PKG_REGEXP = qr{ # match a package declaration
\s* # optional whitespace
($V_NUM_REGEXP)? # optional version number
\s* # optional whitesapce
- ; # semicolon line terminator
+ [;\{] # semicolon line terminator or block start (since 5.16)
}x;
my $VARNAME_REGEXP = qr{ # match fully-qualified VERSION name
diff --git a/cpan/Module-Metadata/t/metadata.t b/cpan/Module-Metadata/t/metadata.t
index 60cb31651d..c0e0f12464 100644
--- a/cpan/Module-Metadata/t/metadata.t
+++ b/cpan/Module-Metadata/t/metadata.t
@@ -7,9 +7,18 @@ use lib 't/lib';
use IO::File;
use MBTest;
+my $undef;
+
# parse various module $VERSION lines
# these will be reversed later to create %modules
my @modules = (
+ $undef => <<'---', # no $VERSION line
+package Simple;
+---
+ $undef => <<'---', # undefined $VERSION
+package Simple;
+our $VERSION;
+---
'1.23' => <<'---', # declared & defined on same line with 'our'
package Simple;
our $VERSION = '1.23';
@@ -171,6 +180,26 @@ our $VERSION = '1.23_00_00';
our $VERSION;
$VERSION = 'onetwothree';
---
+ $undef => <<'---', # package NAME BLOCK, undef $VERSION
+package Simple {
+ our $VERSION;
+}
+---
+ '1.23' => <<'---', # package NAME BLOCK, with $VERSION
+package Simple {
+ our $VERSION = '1.23';
+}
+---
+ '1.23' => <<'---', # package NAME VERSION BLOCK
+package Simple 1.23 {
+ 1;
+}
+---
+ 'v1.2.3_4' => <<'---', # package NAME VERSION BLOCK
+package Simple v1.2.3_4 {
+ 1;
+}
+---
);
my %modules = reverse @modules;
@@ -242,11 +271,18 @@ foreach my $module ( sort keys %modules ) {
# Test::Builder will prematurely numify objects, so use this form
my $errs;
- ok( $pm_info->version eq $expected,
- "correct module version (expected '$expected')" )
- or $errs++;
+ my $got = $pm_info->version;
+ if ( defined $expected ) {
+ ok( $got eq $expected,
+ "correct module version (expected '$expected')" )
+ or $errs++;
+ } else {
+ ok( !defined($got),
+ "correct module version (expected undef)" )
+ or $errs++;
+ }
is( $warnings, '', 'no warnings from parsing' ) or $errs++;
- diag "Got: '@{[$pm_info->version]}'\nModule contents:\n$module" if $errs;
+ diag "Got: '$got'\nModule contents:\n$module" if $errs;
}
}