diff options
author | Chris 'BinGOs' Williams <chris@bingosnet.co.uk> | 2011-09-07 10:00:41 +0100 |
---|---|---|
committer | Chris 'BinGOs' Williams <chris@bingosnet.co.uk> | 2011-09-07 10:00:41 +0100 |
commit | d39de89300b9384bad8b2cf88917ce9f104ae8b2 (patch) | |
tree | 9f513a17203ec2d79d9c2c09a452f8d5553f6d66 /cpan | |
parent | 924d3af1d7b5591ebab03fef27f1aef6364027da (diff) | |
download | perl-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.pm | 4 | ||||
-rw-r--r-- | cpan/Module-Metadata/t/metadata.t | 44 |
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; } } |