NAME

Perl::Critic::PolicyParameter - Metadata about a parameter for a Policy.

DESCRIPTION

A provider of validation and parsing of parameter values and metadata about the parameter.

INTERFACE SUPPORT

This is considered to be a public class. Any changes to its interface will go through a deprecation cycle.

METHODS

get_name()

Return the name of the parameter. This is the key that will be looked for in the .perlcriticrc.

get_description()

Return an explanation of the significance of the parameter, as provided by the developer of the policy.

get_default_string()

Return a representation of the default value of this parameter as it would appear if it was specified in a .perlcriticrc file.

parse_and_validate_config_value( $parser, $config )

Extract the configuration value for this parameter from the overall configuration and initialize the policy based upon it.

generate_full_description()

Produce a more complete explanation of the significance of this parameter than the value returned by get_description().

If no description can be derived, returns the empty string.

Note that the result may contain multiple lines.

to_formatted_string( $format )

Generate a string representation of this parameter, based upon the format.

The format is a combination of literal and escape characters similar to the way sprintf works. If you want to know the specific formatting capabilities, look at String::Format. Valid escape characters are:

%n

The name of the parameter.

%d

The description, as supplied by the programmer.

%D

The default value, in a parsable form.

%f

The full description, which is an extension of the value returned by %d. Takes a parameter of a prefix for the beginning of each line.

SEE ALSO

"MAKING YOUR POLICY CONFIGURABLE" in Perl::Critic::DEVELOPER

AUTHOR

Elliot Shank <perl@galumph.com>

COPYRIGHT

Copyright (c) 2006-2023 Elliot Shank.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of this license can be found in the LICENSE file included with this module.