Kevin Ryde > Perl-Critic-Pulp > Perl::Critic::Pulp::Utils

Download:
Perl-Critic-Pulp-85.tar.gz

Dependencies

Annotate this POD

Website

CPAN RT

Open  0
View/Report Bugs
Module Version: 85   Source  

NAME ^

Perl::Critic::Pulp::Utils - shared helper code for the Pulp perlcritic add-on

SYNOPSIS ^

 use Perl::Critic::Pulp::Utils;

DESCRIPTION ^

This is a bit of a grab bag, but works as far as it goes.

FUNCTIONS ^

Element Functions

$pkgelem = Perl::Critic::Pulp::Utils::elem_package ($elem)

$elem is a PPI::Element. Return the PPI::Statement::Package containing $elem, or undef if $elem is not in the scope of any package statement.

The search upwards begins with the element preceding $elem, so if $elem itself is a PPI::Statement::Package then that's not the one returned, instead its containing package.

$bool = Perl::Critic::Pulp::Utils::elem_in_BEGIN ($elem)

Return true if $elem (a PPI::Element) is within a BEGIN block (ie. a PPI::Statement::Scheduled of type "BEGIN").

$bool = Perl::Critic::Pulp::Utils::elem_is_comma_operator ($elem)

Return true if $elem (a PPI::Element) is a comma operator (PPI::Token::Operator), either "," or "=>'.

Policy Parameter Functions

Perl::Critic::Pulp::Utils::parameter_parse_version ($self, $parameter, $str)

This is designed for use as the parser field of a policy's supported_parameters entry for a parameter which is a version number.

    { name        => 'above_version',
      description => 'Check only above this version of Perl.',
      behavior    => 'string',
      parser      => \&Perl::Critic::Pulp::Utils::parameter_parse_version,
    }    

$str is parsed with the version.pm module. If valid then the parameter is set with $self->__set_parameter_value to the resulting version object (so for example field $self->{'_above_version'}). If invalid then an exception is thrown per $self->throw_parameter_value_exception.

EXPORTS ^

Nothing is exported by default, but the functions can be requested in usual Exporter style,

    use Perl::Critic::Pulp::Utils 'elem_in_BEGIN';
    if (elem_in_BEGIN($elem)) {
      # ...
    }

There's no :all tag since this module is meant as a grab-bag of functions and importing as-yet unknown things would be asking for name clashes.

SEE ALSO ^

Perl::Critic::Pulp, Perl::Critic, PPI

HOME PAGE ^

http://user42.tuxfamily.org/perl-critic-pulp/index.html

COPYRIGHT ^

Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Kevin Ryde

Perl-Critic-Pulp is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.

Perl-Critic-Pulp is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with Perl-Critic-Pulp. If not, see <http://www.gnu.org/licenses/>.

syntax highlighting: