Perl::Critic::Utils::POD::ParseInteriorSequence - Pod::Parser subclass to find all interior sequences.


Perl-Critic documentation Contained in the Perl-Critic distribution.

Index


Code Index:

NAME

Top

Perl::Critic::Utils::POD::ParseInteriorSequence - Pod::Parser subclass to find all interior sequences.

SYNOPSIS

Top

    use Perl::Critic::Utils::POD::ParseInteriorSequence;

    my $parser = Perl::Critic::Utils::POD::ParseInteriorSequence->new();
    my @sequences = $parser->parse_interior_sequences(
        $pod->content() );




DESCRIPTION

Top

Provides a means to extract interior sequences from POD text.

INTERFACE SUPPORT

Top

This module is considered to be private to Perl::Critic. It can be changed or removed without notice.

METHODS

Top

get_interior_sequences( $pod_text )

Returns an array of all the interior sequences from a given chunk of POD text, represented as Pod::InteriorSequence objects. The POD text is assumed to begin with a POD command (e.g. =pod).

interior_sequence( $seq_cmd, $seq_arg, $pod_seq )

Overrides the parent's method of the same name. Stashes the $pod_seq argument, which is a Pod::InteriorSequence object, so that get_interior_sequences() has access to it.

AUTHOR

Top

Thomas R. Wyant, III wyant at cpan dot org

COPYRIGHT

Top


Perl-Critic documentation Contained in the Perl-Critic distribution.

##############################################################################
#      $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/distributions/Perl-Critic/lib/Perl/Critic/Utils/POD/ParseInteriorSequence.pm $
#     $Date: 2011-05-15 16:34:46 -0500 (Sun, 15 May 2011) $
#   $Author: clonezone $
# $Revision: 4078 $
##############################################################################

package Perl::Critic::Utils::POD::ParseInteriorSequence;

use 5.006001;
use strict;
use warnings;

use base qw{ Pod::Parser };

use IO::String;

our $VERSION = '1.116';

#-----------------------------------------------------------------------------

sub interior_sequence {
    my ( $self, $seq_cmd, $seq_arg, $pod_seq ) = @_;
    push @{ $self->{+__PACKAGE__}{interior_sequence} ||= [] }, $pod_seq;
    return $self->SUPER::interior_sequence( $seq_cmd, $seq_arg, $pod_seq );
}

#-----------------------------------------------------------------------------

sub get_interior_sequences {
    my ( $self, $pod ) = @_;
    $self->{+__PACKAGE__}{interior_sequence} = [];
    my $result;
    $self->parse_from_filehandle(
        IO::String->new( \$pod ),
        IO::String->new( \$result )
    );
    return @{ $self->{+__PACKAGE__}{interior_sequence} };
}

#-----------------------------------------------------------------------------

1;

__END__

#-----------------------------------------------------------------------------

# Local Variables:
#   mode: cperl
#   cperl-indent-level: 4
#   fill-column: 78
#   indent-tabs-mode: nil
#   c-indentation-style: bsd
# End:
# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround :