From: Vincent Pit Date: Mon, 30 Jul 2012 15:26:06 +0000 (+0200) Subject: Don't collect "=cut" at the end of a POD section X-Git-Tag: release_1.0.10_001~7 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=617f8754bb241226d652e6abfa2e03e5ffa86e46;p=p5sagit%2FModule-Metadata.git Don't collect "=cut" at the end of a POD section --- diff --git a/lib/Module/Metadata.pm b/lib/Module/Metadata.pm index 2c0c6a6..d0b470d 100644 --- a/lib/Module/Metadata.pm +++ b/lib/Module/Metadata.pm @@ -507,7 +507,7 @@ sub _parse_fh { # Would be nice if we could also check $in_string or something too last if !$in_pod && $line =~ /^__(?:DATA|END)__$/; - if ( $in_pod || $is_cut ) { + if ( $in_pod ) { if ( $line =~ /^=head\d\s+(.+)\s*$/ ) { push( @pod, $1 ); @@ -517,16 +517,20 @@ sub _parse_fh { } $pod_sect = $1; - } elsif ( $self->{collect_pod} ) { $pod_data .= "$line\n"; } - } else { + } elsif ( $is_cut ) { + if ( $self->{collect_pod} && length( $pod_data ) ) { + $pod{$pod_sect} = $pod_data; + $pod_data = ''; + } $pod_sect = ''; - $pod_data = ''; + + } else { # parse $line to see if it's a $VERSION declaration my( $vers_sig, $vers_fullname, $vers_pkg ) = diff --git a/t/metadata.t b/t/metadata.t index df57e09..4a64b54 100644 --- a/t/metadata.t +++ b/t/metadata.t @@ -212,7 +212,7 @@ package Simple v1.2.3_4 { ); my %modules = reverse @modules; -plan tests => 51 + 2 * keys( %modules ); +plan tests => 52 + 2 * keys( %modules ); require_ok('Module::Metadata'); @@ -468,13 +468,19 @@ is( $pm_info->pod('NAME'), undef, $pm_info = Module::Metadata->new_from_module( $dist->name, inc => [ 'lib', @INC ], collect_pod => 1 ); -my $name = $pm_info->pod('NAME'); -if ( $name ) { - $name =~ s/^\s+//; - $name =~ s/\s+$//; +{ + my %pod; + for my $section (qw(NAME AUTHOR)) { + my $content = $pm_info->pod( $section ); + if ( $content ) { + $content =~ s/^\s+//; + $content =~ s/\s+$//; + } + $pod{$section} = $content; + } + is( $pod{NAME}, q|Simple - It's easy.|, 'collected NAME pod section' ); + is( $pod{AUTHOR}, q|Simple Simon|, 'collected AUTHOR pod section' ); } -is( $name, q|Simple - It's easy.|, 'collected pod section' ); - { # Make sure processing stops after __DATA__