1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244
|
package Perl::Critic::Utils::Constants;
use 5.010001;
use strict;
use warnings;
use Readonly;
use Perl::Critic::Utils qw{ $EMPTY hashify };
use Exporter 'import';
our $VERSION = '1.156';
#-----------------------------------------------------------------------------
our @EXPORT_OK = qw{
$PROFILE_STRICTNESS_WARN
$PROFILE_STRICTNESS_FATAL
$PROFILE_STRICTNESS_QUIET
$PROFILE_STRICTNESS_DEFAULT
%PROFILE_STRICTNESSES
$PROFILE_COLOR_SEVERITY_HIGHEST_DEFAULT
$PROFILE_COLOR_SEVERITY_HIGH_DEFAULT
$PROFILE_COLOR_SEVERITY_MEDIUM_DEFAULT
$PROFILE_COLOR_SEVERITY_LOW_DEFAULT
$PROFILE_COLOR_SEVERITY_LOWEST_DEFAULT
$_MODULE_VERSION_TERM_ANSICOLOR
@STRICT_EQUIVALENT_MODULES
@WARNINGS_EQUIVALENT_MODULES
};
our %EXPORT_TAGS = (
all => \@EXPORT_OK,
profile_strictness => [
qw{
$PROFILE_STRICTNESS_WARN
$PROFILE_STRICTNESS_FATAL
$PROFILE_STRICTNESS_QUIET
$PROFILE_STRICTNESS_DEFAULT
%PROFILE_STRICTNESSES
}
],
color_severity => [
qw{
$PROFILE_COLOR_SEVERITY_HIGHEST_DEFAULT
$PROFILE_COLOR_SEVERITY_HIGH_DEFAULT
$PROFILE_COLOR_SEVERITY_MEDIUM_DEFAULT
$PROFILE_COLOR_SEVERITY_LOW_DEFAULT
$PROFILE_COLOR_SEVERITY_LOWEST_DEFAULT
}
],
equivalent_modules => [
qw{
@STRICT_EQUIVALENT_MODULES
@WARNINGS_EQUIVALENT_MODULES
}
],
);
#-----------------------------------------------------------------------------
Readonly::Scalar our $PROFILE_STRICTNESS_WARN => 'warn';
Readonly::Scalar our $PROFILE_STRICTNESS_FATAL => 'fatal';
Readonly::Scalar our $PROFILE_STRICTNESS_QUIET => 'quiet';
Readonly::Scalar our $PROFILE_STRICTNESS_DEFAULT => $PROFILE_STRICTNESS_WARN;
Readonly::Hash our %PROFILE_STRICTNESSES =>
hashify(
$PROFILE_STRICTNESS_WARN,
$PROFILE_STRICTNESS_FATAL,
$PROFILE_STRICTNESS_QUIET,
);
Readonly::Scalar our $PROFILE_COLOR_SEVERITY_HIGHEST_DEFAULT => 'bold red';
Readonly::Scalar our $PROFILE_COLOR_SEVERITY_HIGH_DEFAULT => 'magenta';
Readonly::Scalar our $PROFILE_COLOR_SEVERITY_MEDIUM_DEFAULT => $EMPTY;
Readonly::Scalar our $PROFILE_COLOR_SEVERITY_LOW_DEFAULT => $EMPTY;
Readonly::Scalar our $PROFILE_COLOR_SEVERITY_LOWEST_DEFAULT => $EMPTY;
# If the following changes, the corresponding change needs to be made in
# inc/Perl/Critic/BuildUtilities.pm, sub recommended_module_versions().
Readonly::Scalar our $_MODULE_VERSION_TERM_ANSICOLOR => 2.02;
Readonly::Array our @STRICT_EQUIVALENT_MODULES => qw(
Mo
Moo
Moo::Role
Moose
Moose::Role
Moose::Exporter
Moose::Util::TypeConstraints
Test::Class::Moose
MooseX::NonMoose
MooseX::Singleton
MooseX::Role::Parameterized
MooseX::MethodAttributes::Role
Mouse
Mouse::Role
Mouse::Exporter
Mouse::Util
Mouse::Util::TypeConstraints
Moos
Mousse
Any::Moose
Modern::Perl
Dancer
Dancer2
Mojolicious::Lite
Mojo::Base
Object::Simple
Role::Tiny
Test::Spec
sane
strictures
);
# Such modules tend to inflict both strictures and warnings, so for
# the moment these equivalent module lists are exactly the same.
Readonly::Array our @WARNINGS_EQUIVALENT_MODULES
=> @STRICT_EQUIVALENT_MODULES;
#-----------------------------------------------------------------------------
1;
__END__
#-----------------------------------------------------------------------------
=pod
=for stopwords
=head1 NAME
Perl::Critic::Utils::Constants - Global constants.
=head1 DESCRIPTION
Defines commonly used constants for L<Perl::Critic|Perl::Critic>.
=head1 INTERFACE SUPPORT
This is considered to be a public module. Any changes to its
interface will go through a deprecation cycle.
=head1 IMPORTABLE CONSTANTS
=over
=item C<$PROFILE_STRICTNESS_WARN>
=item C<$PROFILE_STRICTNESS_FATAL>
=item C<$PROFILE_STRICTNESS_QUIET>
=item C<$PROFILE_STRICTNESS_DEFAULT>
=item C<%PROFILE_STRICTNESSES>
Valid values for the L<perlcritic/"-profile-strictness"> option.
Determines whether recoverable problems found in a profile file appear
as warnings, are fatal, or are ignored.
C<$PROFILE_STRICTNESS_DEFAULT> is set to C<$PROFILE_STRICTNESS_WARN>.
Importable via the C<:profile_strictness> tag.
=item C<$PROFILE_COLOR_SEVERITY_HIGHEST_DEFAULT>
Default for the -color-severity-highest option. Importable via the
C<:color_severity> tag.
=item C<$PROFILE_COLOR_SEVERITY_HIGH_DEFAULT>
Default for the -color-severity-high option. Importable via the
C<:color_severity> tag.
=item C<$PROFILE_COLOR_SEVERITY_MEDIUM_DEFAULT>
Default for the -color-severity-medium option. Importable via the
C<:color_severity> tag.
=item C<$PROFILE_COLOR_SEVERITY_LOW_DEFAULT>
Default for the -color-severity-low option. Importable via the
C<:color_severity> tag.
=item C<$PROFILE_COLOR_SEVERITY_LOWEST_DEFAULT>
Default for the -color-severity-lowest option. Importable via the
C<:color_severity> tag.
=item C<@STRICT_EQUIVALENT_MODULES>
=item C<@WARNINGS_EQUIVALENT_MODULES>
As the names suggest, these are lists of modules that are equivalent to
applying the L<strict|strict> or L<warnings|warnings> pragma when loaded. At
the moment, both lists are exactly the same. B<Note:> These lists are not
exhaustive; they only include the most commonly used modules. Policies that
use these lists should permit configuration of additional modules.
=back
=head1 AUTHOR
Elliot Shank <perl@galumph.com>
=head1 COPYRIGHT
Copyright (c) 2007-2011 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.
=cut
# 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 :
|