Dist-Zilla-PluginBundle-DROLSKY
view release on metacpan or search on metacpan
lib/Dist/Zilla/Plugin/DROLSKY/PerlLinterConfigFiles.pm view on Meta::CPAN
package Dist::Zilla::Plugin::DROLSKY::PerlLinterConfigFiles;
use v5.10;
use strict;
use warnings;
use autodie;
use namespace::autoclean;
our $VERSION = '1.24';
use Path::Tiny qw( path );
use Path::Tiny::Rule;
use Moose;
with qw(
Dist::Zilla::Plugin::DROLSKY::Role::MaybeFileWriter
Dist::Zilla::Role::BeforeBuild
);
sub before_build {
my $self = shift;
$self->_maybe_write_file( 'perltidyrc', $self->_perltidyrc );
$self->_maybe_write_file( 'perlcriticrc', $self->_perlcriticrc );
return;
}
my $perltidyrc = <<'EOF';
-l=78
-i=4
-ci=4
-se
-b
-bar
-boc
-vt=0
-vtc=0
-cti=0
-pt=1
-bt=1
-sbt=1
-bbt=1
-nolq
-npro
-nsfs
--blank-lines-before-packages=0
--opening-hash-brace-right
--no-outdent-long-comments
--iterations=2
-wbb="% + - * / x != == >= <= =~ !~ < > | & >= < = **= += *= &= <<= &&= -= /= |= >>= ||= .= %= ^= x="
EOF
sub _perltidyrc {$perltidyrc}
my $perlcriticrc = <<'EOF';
severity = 3
verbose = 11
theme = (core && (pbp || bugs || maintenance || cosmetic || complexity || security || tests)) || moose
program-extensions = pl psgi t
exclude = Subroutines::ProhibitCallsToUndeclaredSubs
[BuiltinFunctions::ProhibitStringySplit]
severity = 3
[CodeLayout::RequireTrailingCommas]
severity = 3
[ControlStructures::ProhibitCStyleForLoops]
severity = 3
[InputOutput::RequireCheckedSyscalls]
functions = :builtins
exclude_functions = sleep
severity = 3
[RegularExpressions::ProhibitComplexRegexes]
max_characters = 200
[RegularExpressions::ProhibitUnusualDelimiters]
severity = 3
[Subroutines::ProhibitUnusedPrivateSubroutines]
private_name_regex = _(?!build)\w+
[TestingAndDebugging::ProhibitNoWarnings]
allow = redefine
[ValuesAndExpressions::ProhibitEmptyQuotes]
severity = 3
[ValuesAndExpressions::ProhibitInterpolationOfLiterals]
severity = 3
[ValuesAndExpressions::RequireUpperCaseHeredocTerminator]
severity = 3
[Variables::ProhibitPackageVars]
add_packages = Carp Test::Builder
[-Subroutines::RequireFinalReturn]
# This incorrectly thinks signatures are prototypes.
[-Subroutines::ProhibitSubroutinePrototypes]
[-ErrorHandling::RequireCarping]
# No need for /xsm everywhere
[-RegularExpressions::RequireDotMatchAnything]
( run in 3.145 seconds using v1.01-cache-2.11-cpan-71847e10f99 )