verbose  = 9
severity = 1

# PodWeaver inserts $VERSION before strictures and warnings
[-TestingAndDebugging::RequireUseStrict]
[-TestingAndDebugging::RequireUseWarnings]

[TestingAndDebugging::ProhibitProlongedStrictureOverride]
statements = 5

[-Documentation::RequirePodLinksIncludeText]
[-Documentation::RequirePodSections]

[NamingConventions::Capitalization]
file_lexical_variables = :starts_with_upper
global_variables = :starts_with_upper

# export functions that work like built-ins
[-Subroutines::ProhibitSubroutinePrototypes]

[Subroutines::RequireArgUnpacking]
short_subroutine_statements = 2

# methods beginning with a double-underscore are not private within Test::Mocha
[Subroutines::ProtectPrivateSubs]
private_name_regex = _(?!_)\w+
[Subroutines::ProhibitUnusedPrivateSubroutines]
private_name_regex = _(?!_)\w+

[RegularExpressions::RequireExtendedFormatting]
minimum_regex_length_to_complain_about = 5

# export the main functions by default
[-Modules::ProhibitAutomaticExportation]
# use of AUTOLOAD is central to the functionality of this distribution
[-ClassHierarchies::ProhibitAutoloading]
# use of package vars is to avoid subroutines to allow them to be AUTOLOADed
[-Variables::ProhibitPackageVars]
[-Variables::ProhibitLocalVars]

[-BuiltinFunctions::ProhibitStringySplit]
[-ValuesAndExpressions::ProhibitConstantPragma]
[-ControlStructures::ProhibitPostfixControls]
# 'unless' is sometimes needed to get coverage tests to pass
[-ControlStructures::ProhibitUnlessBlocks]

[ValuesAndExpressions::ProhibitInterpolationOfLiterals]
allow_if_string_contains_single_quote = 1

[CodeLayout::RequireTidyCode]
perltidyrc = perltidy.ini