Benchmark-Perl-Formance-Cargo
view release on metacpan or search on metacpan
share/PerlCritic/Critic/Policy.pm view on Meta::CPAN
sub add_themes {
my ($self, @additional_themes) = @_;
#By hashifying the themes, we squish duplicates
my %merged = hashify( $self->get_themes(), @additional_themes);
$self->{_themes} = [ keys %merged];
return $self;
}
#-----------------------------------------------------------------------------
sub default_themes {
return ();
}
#-----------------------------------------------------------------------------
sub get_abstract {
my ($self) = @_;
return get_module_abstract_for_module( ref $self );
}
#-----------------------------------------------------------------------------
sub get_raw_abstract {
my ($self) = @_;
return get_raw_module_abstract_for_module( ref $self );
}
#-----------------------------------------------------------------------------
sub parameter_metadata_available {
my ($self) = @_;
return $self->{_parameter_metadata_available};
}
#-----------------------------------------------------------------------------
sub get_parameters {
my ($self) = @_;
return $self->{_parameters};
}
#-----------------------------------------------------------------------------
sub violates {
my ($self) = @_;
return throw_policy_definition
$self->get_short_name() . q/ does not implement violates()./;
}
#-----------------------------------------------------------------------------
sub violation { ## no critic (ArgUnpacking)
my ( $self, $desc, $expl, $elem ) = @_;
# HACK!! Use goto instead of an explicit call because P::C::V::new() uses caller()
my $sev = $self->get_severity();
@_ = ('Perl::Critic::Violation', $desc, $expl, $elem, $sev );
goto &Perl::Critic::Violation::new;
}
#-----------------------------------------------------------------------------
sub new_parameter_value_exception {
my ( $self, $option_name, $option_value, $source, $message_suffix ) = @_;
return Perl::Critic::Exception::Configuration::Option::Policy::ParameterValue->new(
policy => $self->get_short_name(),
option_name => $option_name,
option_value => $option_value,
source => $source,
message_suffix => $message_suffix
);
}
#-----------------------------------------------------------------------------
## no critic (Subroutines::RequireFinalReturn)
sub throw_parameter_value_exception {
my ( $self, $option_name, $option_value, $source, $message_suffix ) = @_;
$self->new_parameter_value_exception(
$option_name, $option_value, $source, $message_suffix
)
->throw();
}
## use critic
#-----------------------------------------------------------------------------
# Static methods.
sub set_format { return $format = $_[0] } ## no critic(ArgUnpacking)
sub get_format { return $format }
#-----------------------------------------------------------------------------
sub to_string {
my ($self, @args) = @_;
# Wrap the more expensive ones in sub{} to postpone evaluation
my %fspec = (
'P' => sub { $self->get_long_name() },
'p' => sub { $self->get_short_name() },
'a' => sub { dor($self->get_abstract(), $EMPTY) },
'O' => sub { $self->_format_parameters(@_) },
'U' => sub { $self->_format_lack_of_parameter_metadata(@_) },
'S' => sub { $self->default_severity() },
's' => sub { $self->get_severity() },
'T' => sub { join $SPACE, $self->default_themes() },
't' => sub { join $SPACE, $self->get_themes() },
'V' => sub { dor( $self->default_maximum_violations_per_document(), $NO_LIMIT ) },
'v' => sub { dor( $self->get_maximum_violations_per_document(), $NO_LIMIT ) },
);
return stringf(get_format(), %fspec);
( run in 0.771 second using v1.01-cache-2.11-cpan-5735350b133 )