= Cops

In RuboCop lingo the various checks performed on the code are called cops.
Each cop is responsible for detecting one particular offense. There are several
cop departments, grouping the cops by class of offense. A short description of
the different departments is provided below.

Many of the Style and Layout cops have configuration options, allowing them to
enforce different coding conventions.

You can also load xref:extensions.adoc#custom-cops[custom cops].

== Style

Style cops check for stylistic consistency of your code. Many of the them are
based on the https://rubystyle.guide[Ruby Style Guide].

== Layout

Layout cops inspect your code for consistent use of indentation, alignment,
and white space.

== Lint

Lint cops check for ambiguities and possible errors in your code.

RuboCop implements, in a portable way, all built-in MRI lint checks
(`ruby -wc`) and adds a lot of extra lint checks of its own.

You can run only the Lint cops like this:

[source,sh]
----
$ rubocop -l
----

The `-l`/`--lint` option can be used together with `--only` to run all the
enabled Lint cops plus a selection of other cops.

Disabling Lint cops is generally a bad idea.

== Metrics

Metrics cops deal with properties of the source code that can be measured,
such as class length, method length, etc. Generally speaking, they have a
configuration parameter called `Max` and when running
`rubocop --auto-gen-config`, this parameter will be set to the highest value
found for the inspected code.

== Naming

Naming cops check for naming issue of your code, such as method name, constant
name, file name, etc.

== Security

Security cops checks for method calls and constructs which are known to be
associated with potential security issues.

== Bundler

Bundler cops check for style and bad practices in Bundler files, e.g. `Gemfile`.

== Gemspec

Gemspec cops check for style and bad practices in gemspec files, e.g. `rubocop.gemspec`.

== Available cops

In the following section you find all available cops:

// START_COP_LIST

=== Department xref:cops_bundler.adoc[Bundler]

* xref:cops_bundler.adoc#bundlerduplicatedgem[Bundler/DuplicatedGem]
* xref:cops_bundler.adoc#bundlergemcomment[Bundler/GemComment]
* xref:cops_bundler.adoc#bundlerinsecureprotocolsource[Bundler/InsecureProtocolSource]
* xref:cops_bundler.adoc#bundlerorderedgems[Bundler/OrderedGems]

=== Department xref:cops_gemspec.adoc[Gemspec]

* xref:cops_gemspec.adoc#gemspecduplicatedassignment[Gemspec/DuplicatedAssignment]
* xref:cops_gemspec.adoc#gemspecordereddependencies[Gemspec/OrderedDependencies]
* xref:cops_gemspec.adoc#gemspecrequiredrubyversion[Gemspec/RequiredRubyVersion]
* xref:cops_gemspec.adoc#gemspecrubyversionglobalsusage[Gemspec/RubyVersionGlobalsUsage]

=== Department xref:cops_layout.adoc[Layout]

* xref:cops_layout.adoc#layoutaccessmodifierindentation[Layout/AccessModifierIndentation]
* xref:cops_layout.adoc#layoutargumentalignment[Layout/ArgumentAlignment]
* xref:cops_layout.adoc#layoutarrayalignment[Layout/ArrayAlignment]
* xref:cops_layout.adoc#layoutassignmentindentation[Layout/AssignmentIndentation]
* xref:cops_layout.adoc#layoutblockalignment[Layout/BlockAlignment]
* xref:cops_layout.adoc#layoutblockendnewline[Layout/BlockEndNewline]
* xref:cops_layout.adoc#layoutcaseindentation[Layout/CaseIndentation]
* xref:cops_layout.adoc#layoutclassstructure[Layout/ClassStructure]
* xref:cops_layout.adoc#layoutclosingheredocindentation[Layout/ClosingHeredocIndentation]
* xref:cops_layout.adoc#layoutclosingparenthesisindentation[Layout/ClosingParenthesisIndentation]
* xref:cops_layout.adoc#layoutcommentindentation[Layout/CommentIndentation]
* xref:cops_layout.adoc#layoutconditionposition[Layout/ConditionPosition]
* xref:cops_layout.adoc#layoutdefendalignment[Layout/DefEndAlignment]
* xref:cops_layout.adoc#layoutdotposition[Layout/DotPosition]
* xref:cops_layout.adoc#layoutelsealignment[Layout/ElseAlignment]
* xref:cops_layout.adoc#layoutemptycomment[Layout/EmptyComment]
* xref:cops_layout.adoc#layoutemptylineafterguardclause[Layout/EmptyLineAfterGuardClause]
* xref:cops_layout.adoc#layoutemptylineaftermagiccomment[Layout/EmptyLineAfterMagicComment]
* xref:cops_layout.adoc#layoutemptylinebetweendefs[Layout/EmptyLineBetweenDefs]
* xref:cops_layout.adoc#layoutemptylines[Layout/EmptyLines]
* xref:cops_layout.adoc#layoutemptylinesaroundaccessmodifier[Layout/EmptyLinesAroundAccessModifier]
* xref:cops_layout.adoc#layoutemptylinesaroundarguments[Layout/EmptyLinesAroundArguments]
* xref:cops_layout.adoc#layoutemptylinesaroundattributeaccessor[Layout/EmptyLinesAroundAttributeAccessor]
* xref:cops_layout.adoc#layoutemptylinesaroundbeginbody[Layout/EmptyLinesAroundBeginBody]
* xref:cops_layout.adoc#layoutemptylinesaroundblockbody[Layout/EmptyLinesAroundBlockBody]
* xref:cops_layout.adoc#layoutemptylinesaroundclassbody[Layout/EmptyLinesAroundClassBody]
* xref:cops_layout.adoc#layoutemptylinesaroundexceptionhandlingkeywords[Layout/EmptyLinesAroundExceptionHandlingKeywords]
* xref:cops_layout.adoc#layoutemptylinesaroundmethodbody[Layout/EmptyLinesAroundMethodBody]
* xref:cops_layout.adoc#layoutemptylinesaroundmodulebody[Layout/EmptyLinesAroundModuleBody]
* xref:cops_layout.adoc#layoutendalignment[Layout/EndAlignment]
* xref:cops_layout.adoc#layoutendofline[Layout/EndOfLine]
* xref:cops_layout.adoc#layoutextraspacing[Layout/ExtraSpacing]
* xref:cops_layout.adoc#layoutfirstargumentindentation[Layout/FirstArgumentIndentation]
* xref:cops_layout.adoc#layoutfirstarrayelementindentation[Layout/FirstArrayElementIndentation]
* xref:cops_layout.adoc#layoutfirstarrayelementlinebreak[Layout/FirstArrayElementLineBreak]
* xref:cops_layout.adoc#layoutfirsthashelementindentation[Layout/FirstHashElementIndentation]
* xref:cops_layout.adoc#layoutfirsthashelementlinebreak[Layout/FirstHashElementLineBreak]
* xref:cops_layout.adoc#layoutfirstmethodargumentlinebreak[Layout/FirstMethodArgumentLineBreak]
* xref:cops_layout.adoc#layoutfirstmethodparameterlinebreak[Layout/FirstMethodParameterLineBreak]
* xref:cops_layout.adoc#layoutfirstparameterindentation[Layout/FirstParameterIndentation]
* xref:cops_layout.adoc#layouthashalignment[Layout/HashAlignment]
* xref:cops_layout.adoc#layoutheredocargumentclosingparenthesis[Layout/HeredocArgumentClosingParenthesis]
* xref:cops_layout.adoc#layoutheredocindentation[Layout/HeredocIndentation]
* xref:cops_layout.adoc#layoutindentationconsistency[Layout/IndentationConsistency]
* xref:cops_layout.adoc#layoutindentationstyle[Layout/IndentationStyle]
* xref:cops_layout.adoc#layoutindentationwidth[Layout/IndentationWidth]
* xref:cops_layout.adoc#layoutinitialindentation[Layout/InitialIndentation]
* xref:cops_layout.adoc#layoutleadingcommentspace[Layout/LeadingCommentSpace]
* xref:cops_layout.adoc#layoutleadingemptylines[Layout/LeadingEmptyLines]
* xref:cops_layout.adoc#layoutlinelength[Layout/LineLength]
* xref:cops_layout.adoc#layoutmultilinearraybracelayout[Layout/MultilineArrayBraceLayout]
* xref:cops_layout.adoc#layoutmultilinearraylinebreaks[Layout/MultilineArrayLineBreaks]
* xref:cops_layout.adoc#layoutmultilineassignmentlayout[Layout/MultilineAssignmentLayout]
* xref:cops_layout.adoc#layoutmultilineblocklayout[Layout/MultilineBlockLayout]
* xref:cops_layout.adoc#layoutmultilinehashbracelayout[Layout/MultilineHashBraceLayout]
* xref:cops_layout.adoc#layoutmultilinehashkeylinebreaks[Layout/MultilineHashKeyLineBreaks]
* xref:cops_layout.adoc#layoutmultilinemethodargumentlinebreaks[Layout/MultilineMethodArgumentLineBreaks]
* xref:cops_layout.adoc#layoutmultilinemethodcallbracelayout[Layout/MultilineMethodCallBraceLayout]
* xref:cops_layout.adoc#layoutmultilinemethodcallindentation[Layout/MultilineMethodCallIndentation]
* xref:cops_layout.adoc#layoutmultilinemethoddefinitionbracelayout[Layout/MultilineMethodDefinitionBraceLayout]
* xref:cops_layout.adoc#layoutmultilineoperationindentation[Layout/MultilineOperationIndentation]
* xref:cops_layout.adoc#layoutparameteralignment[Layout/ParameterAlignment]
* xref:cops_layout.adoc#layoutrescueensurealignment[Layout/RescueEnsureAlignment]
* xref:cops_layout.adoc#layoutspaceaftercolon[Layout/SpaceAfterColon]
* xref:cops_layout.adoc#layoutspaceaftercomma[Layout/SpaceAfterComma]
* xref:cops_layout.adoc#layoutspaceaftermethodname[Layout/SpaceAfterMethodName]
* xref:cops_layout.adoc#layoutspaceafternot[Layout/SpaceAfterNot]
* xref:cops_layout.adoc#layoutspaceaftersemicolon[Layout/SpaceAfterSemicolon]
* xref:cops_layout.adoc#layoutspacearoundblockparameters[Layout/SpaceAroundBlockParameters]
* xref:cops_layout.adoc#layoutspacearoundequalsinparameterdefault[Layout/SpaceAroundEqualsInParameterDefault]
* xref:cops_layout.adoc#layoutspacearoundkeyword[Layout/SpaceAroundKeyword]
* xref:cops_layout.adoc#layoutspacearoundmethodcalloperator[Layout/SpaceAroundMethodCallOperator]
* xref:cops_layout.adoc#layoutspacearoundoperators[Layout/SpaceAroundOperators]
* xref:cops_layout.adoc#layoutspacebeforeblockbraces[Layout/SpaceBeforeBlockBraces]
* xref:cops_layout.adoc#layoutspacebeforecomma[Layout/SpaceBeforeComma]
* xref:cops_layout.adoc#layoutspacebeforecomment[Layout/SpaceBeforeComment]
* xref:cops_layout.adoc#layoutspacebeforefirstarg[Layout/SpaceBeforeFirstArg]
* xref:cops_layout.adoc#layoutspacebeforesemicolon[Layout/SpaceBeforeSemicolon]
* xref:cops_layout.adoc#layoutspaceinlambdaliteral[Layout/SpaceInLambdaLiteral]
* xref:cops_layout.adoc#layoutspaceinsidearrayliteralbrackets[Layout/SpaceInsideArrayLiteralBrackets]
* xref:cops_layout.adoc#layoutspaceinsidearraypercentliteral[Layout/SpaceInsideArrayPercentLiteral]
* xref:cops_layout.adoc#layoutspaceinsideblockbraces[Layout/SpaceInsideBlockBraces]
* xref:cops_layout.adoc#layoutspaceinsidehashliteralbraces[Layout/SpaceInsideHashLiteralBraces]
* xref:cops_layout.adoc#layoutspaceinsideparens[Layout/SpaceInsideParens]
* xref:cops_layout.adoc#layoutspaceinsidepercentliteraldelimiters[Layout/SpaceInsidePercentLiteralDelimiters]
* xref:cops_layout.adoc#layoutspaceinsiderangeliteral[Layout/SpaceInsideRangeLiteral]
* xref:cops_layout.adoc#layoutspaceinsidereferencebrackets[Layout/SpaceInsideReferenceBrackets]
* xref:cops_layout.adoc#layoutspaceinsidestringinterpolation[Layout/SpaceInsideStringInterpolation]
* xref:cops_layout.adoc#layouttrailingemptylines[Layout/TrailingEmptyLines]
* xref:cops_layout.adoc#layouttrailingwhitespace[Layout/TrailingWhitespace]

=== Department xref:cops_lint.adoc[Lint]

* xref:cops_lint.adoc#lintambiguousblockassociation[Lint/AmbiguousBlockAssociation]
* xref:cops_lint.adoc#lintambiguousoperator[Lint/AmbiguousOperator]
* xref:cops_lint.adoc#lintambiguousregexpliteral[Lint/AmbiguousRegexpLiteral]
* xref:cops_lint.adoc#lintassignmentincondition[Lint/AssignmentInCondition]
* xref:cops_lint.adoc#lintbigdecimalnew[Lint/BigDecimalNew]
* xref:cops_lint.adoc#lintbinaryoperatorwithidenticaloperands[Lint/BinaryOperatorWithIdenticalOperands]
* xref:cops_lint.adoc#lintbooleansymbol[Lint/BooleanSymbol]
* xref:cops_lint.adoc#lintcircularargumentreference[Lint/CircularArgumentReference]
* xref:cops_lint.adoc#lintconstantresolution[Lint/ConstantResolution]
* xref:cops_lint.adoc#lintdebugger[Lint/Debugger]
* xref:cops_lint.adoc#lintdeprecatedclassmethods[Lint/DeprecatedClassMethods]
* xref:cops_lint.adoc#lintdeprecatedopensslconstant[Lint/DeprecatedOpenSSLConstant]
* xref:cops_lint.adoc#lintdisjunctiveassignmentinconstructor[Lint/DisjunctiveAssignmentInConstructor]
* xref:cops_lint.adoc#lintduplicatecasecondition[Lint/DuplicateCaseCondition]
* xref:cops_lint.adoc#lintduplicateelsifcondition[Lint/DuplicateElsifCondition]
* xref:cops_lint.adoc#lintduplicatehashkey[Lint/DuplicateHashKey]
* xref:cops_lint.adoc#lintduplicatemethods[Lint/DuplicateMethods]
* xref:cops_lint.adoc#lintduplicaterescueexception[Lint/DuplicateRescueException]
* xref:cops_lint.adoc#linteachwithobjectargument[Lint/EachWithObjectArgument]
* xref:cops_lint.adoc#lintelselayout[Lint/ElseLayout]
* xref:cops_lint.adoc#lintemptyconditionalbody[Lint/EmptyConditionalBody]
* xref:cops_lint.adoc#lintemptyensure[Lint/EmptyEnsure]
* xref:cops_lint.adoc#lintemptyexpression[Lint/EmptyExpression]
* xref:cops_lint.adoc#lintemptyinterpolation[Lint/EmptyInterpolation]
* xref:cops_lint.adoc#lintemptywhen[Lint/EmptyWhen]
* xref:cops_lint.adoc#lintensurereturn[Lint/EnsureReturn]
* xref:cops_lint.adoc#linterbnewarguments[Lint/ErbNewArguments]
* xref:cops_lint.adoc#lintflipflop[Lint/FlipFlop]
* xref:cops_lint.adoc#lintfloatcomparison[Lint/FloatComparison]
* xref:cops_lint.adoc#lintfloatoutofrange[Lint/FloatOutOfRange]
* xref:cops_lint.adoc#lintformatparametermismatch[Lint/FormatParameterMismatch]
* xref:cops_lint.adoc#lintheredocmethodcallposition[Lint/HeredocMethodCallPosition]
* xref:cops_lint.adoc#lintimplicitstringconcatenation[Lint/ImplicitStringConcatenation]
* xref:cops_lint.adoc#lintineffectiveaccessmodifier[Lint/IneffectiveAccessModifier]
* xref:cops_lint.adoc#lintinheritexception[Lint/InheritException]
* xref:cops_lint.adoc#lintinterpolationcheck[Lint/InterpolationCheck]
* xref:cops_lint.adoc#lintliteralascondition[Lint/LiteralAsCondition]
* xref:cops_lint.adoc#lintliteralininterpolation[Lint/LiteralInInterpolation]
* xref:cops_lint.adoc#lintloop[Lint/Loop]
* xref:cops_lint.adoc#lintmissingcopenabledirective[Lint/MissingCopEnableDirective]
* xref:cops_lint.adoc#lintmissingsuper[Lint/MissingSuper]
* xref:cops_lint.adoc#lintmixedregexpcapturetypes[Lint/MixedRegexpCaptureTypes]
* xref:cops_lint.adoc#lintmultiplecomparison[Lint/MultipleComparison]
* xref:cops_lint.adoc#lintnestedmethoddefinition[Lint/NestedMethodDefinition]
* xref:cops_lint.adoc#lintnestedpercentliteral[Lint/NestedPercentLiteral]
* xref:cops_lint.adoc#lintnextwithoutaccumulator[Lint/NextWithoutAccumulator]
* xref:cops_lint.adoc#lintnondeterministicrequireorder[Lint/NonDeterministicRequireOrder]
* xref:cops_lint.adoc#lintnonlocalexitfromiterator[Lint/NonLocalExitFromIterator]
* xref:cops_lint.adoc#lintnumberconversion[Lint/NumberConversion]
* xref:cops_lint.adoc#lintorderedmagiccomments[Lint/OrderedMagicComments]
* xref:cops_lint.adoc#lintoutofrangeregexpref[Lint/OutOfRangeRegexpRef]
* xref:cops_lint.adoc#lintparenthesesasgroupedexpression[Lint/ParenthesesAsGroupedExpression]
* xref:cops_lint.adoc#lintpercentstringarray[Lint/PercentStringArray]
* xref:cops_lint.adoc#lintpercentsymbolarray[Lint/PercentSymbolArray]
* xref:cops_lint.adoc#lintraiseexception[Lint/RaiseException]
* xref:cops_lint.adoc#lintrandone[Lint/RandOne]
* xref:cops_lint.adoc#lintredundantcopdisabledirective[Lint/RedundantCopDisableDirective]
* xref:cops_lint.adoc#lintredundantcopenabledirective[Lint/RedundantCopEnableDirective]
* xref:cops_lint.adoc#lintredundantrequirestatement[Lint/RedundantRequireStatement]
* xref:cops_lint.adoc#lintredundantsplatexpansion[Lint/RedundantSplatExpansion]
* xref:cops_lint.adoc#lintredundantstringcoercion[Lint/RedundantStringCoercion]
* xref:cops_lint.adoc#lintredundantwithindex[Lint/RedundantWithIndex]
* xref:cops_lint.adoc#lintredundantwithobject[Lint/RedundantWithObject]
* xref:cops_lint.adoc#lintregexpascondition[Lint/RegexpAsCondition]
* xref:cops_lint.adoc#lintrequireparentheses[Lint/RequireParentheses]
* xref:cops_lint.adoc#lintrescueexception[Lint/RescueException]
* xref:cops_lint.adoc#lintrescuetype[Lint/RescueType]
* xref:cops_lint.adoc#lintreturninvoidcontext[Lint/ReturnInVoidContext]
* xref:cops_lint.adoc#lintsafenavigationchain[Lint/SafeNavigationChain]
* xref:cops_lint.adoc#lintsafenavigationconsistency[Lint/SafeNavigationConsistency]
* xref:cops_lint.adoc#lintsafenavigationwithempty[Lint/SafeNavigationWithEmpty]
* xref:cops_lint.adoc#lintscriptpermission[Lint/ScriptPermission]
* xref:cops_lint.adoc#lintselfassignment[Lint/SelfAssignment]
* xref:cops_lint.adoc#lintsendwithmixinargument[Lint/SendWithMixinArgument]
* xref:cops_lint.adoc#lintshadowedargument[Lint/ShadowedArgument]
* xref:cops_lint.adoc#lintshadowedexception[Lint/ShadowedException]
* xref:cops_lint.adoc#lintshadowingouterlocalvariable[Lint/ShadowingOuterLocalVariable]
* xref:cops_lint.adoc#lintstructnewoverride[Lint/StructNewOverride]
* xref:cops_lint.adoc#lintsuppressedexception[Lint/SuppressedException]
* xref:cops_lint.adoc#lintsyntax[Lint/Syntax]
* xref:cops_lint.adoc#linttojson[Lint/ToJSON]
* xref:cops_lint.adoc#linttoplevelreturnwithargument[Lint/TopLevelReturnWithArgument]
* xref:cops_lint.adoc#lintunderscoreprefixedvariablename[Lint/UnderscorePrefixedVariableName]
* xref:cops_lint.adoc#lintunifiedinteger[Lint/UnifiedInteger]
* xref:cops_lint.adoc#lintunreachablecode[Lint/UnreachableCode]
* xref:cops_lint.adoc#lintunreachableloop[Lint/UnreachableLoop]
* xref:cops_lint.adoc#lintunusedblockargument[Lint/UnusedBlockArgument]
* xref:cops_lint.adoc#lintunusedmethodargument[Lint/UnusedMethodArgument]
* xref:cops_lint.adoc#linturiescapeunescape[Lint/UriEscapeUnescape]
* xref:cops_lint.adoc#linturiregexp[Lint/UriRegexp]
* xref:cops_lint.adoc#lintuselessaccessmodifier[Lint/UselessAccessModifier]
* xref:cops_lint.adoc#lintuselessassignment[Lint/UselessAssignment]
* xref:cops_lint.adoc#lintuselesselsewithoutrescue[Lint/UselessElseWithoutRescue]
* xref:cops_lint.adoc#lintuselesssettercall[Lint/UselessSetterCall]
* xref:cops_lint.adoc#lintvoid[Lint/Void]

=== Department xref:cops_metrics.adoc[Metrics]

* xref:cops_metrics.adoc#metricsabcsize[Metrics/AbcSize]
* xref:cops_metrics.adoc#metricsblocklength[Metrics/BlockLength]
* xref:cops_metrics.adoc#metricsblocknesting[Metrics/BlockNesting]
* xref:cops_metrics.adoc#metricsclasslength[Metrics/ClassLength]
* xref:cops_metrics.adoc#metricscyclomaticcomplexity[Metrics/CyclomaticComplexity]
* xref:cops_metrics.adoc#metricsmethodlength[Metrics/MethodLength]
* xref:cops_metrics.adoc#metricsmodulelength[Metrics/ModuleLength]
* xref:cops_metrics.adoc#metricsparameterlists[Metrics/ParameterLists]
* xref:cops_metrics.adoc#metricsperceivedcomplexity[Metrics/PerceivedComplexity]

=== Department xref:cops_migration.adoc[Migration]

* xref:cops_migration.adoc#migrationdepartmentname[Migration/DepartmentName]

=== Department xref:cops_naming.adoc[Naming]

* xref:cops_naming.adoc#namingaccessormethodname[Naming/AccessorMethodName]
* xref:cops_naming.adoc#namingasciiidentifiers[Naming/AsciiIdentifiers]
* xref:cops_naming.adoc#namingbinaryoperatorparametername[Naming/BinaryOperatorParameterName]
* xref:cops_naming.adoc#namingblockparametername[Naming/BlockParameterName]
* xref:cops_naming.adoc#namingclassandmodulecamelcase[Naming/ClassAndModuleCamelCase]
* xref:cops_naming.adoc#namingconstantname[Naming/ConstantName]
* xref:cops_naming.adoc#namingfilename[Naming/FileName]
* xref:cops_naming.adoc#namingheredocdelimitercase[Naming/HeredocDelimiterCase]
* xref:cops_naming.adoc#namingheredocdelimiternaming[Naming/HeredocDelimiterNaming]
* xref:cops_naming.adoc#namingmemoizedinstancevariablename[Naming/MemoizedInstanceVariableName]
* xref:cops_naming.adoc#namingmethodname[Naming/MethodName]
* xref:cops_naming.adoc#namingmethodparametername[Naming/MethodParameterName]
* xref:cops_naming.adoc#namingpredicatename[Naming/PredicateName]
* xref:cops_naming.adoc#namingrescuedexceptionsvariablename[Naming/RescuedExceptionsVariableName]
* xref:cops_naming.adoc#namingvariablename[Naming/VariableName]
* xref:cops_naming.adoc#namingvariablenumber[Naming/VariableNumber]

=== Department xref:cops_security.adoc[Security]

* xref:cops_security.adoc#securityeval[Security/Eval]
* xref:cops_security.adoc#securityjsonload[Security/JSONLoad]
* xref:cops_security.adoc#securitymarshalload[Security/MarshalLoad]
* xref:cops_security.adoc#securityopen[Security/Open]
* xref:cops_security.adoc#securityyamlload[Security/YAMLLoad]

=== Department xref:cops_style.adoc[Style]

* xref:cops_style.adoc#styleaccessmodifierdeclarations[Style/AccessModifierDeclarations]
* xref:cops_style.adoc#styleaccessorgrouping[Style/AccessorGrouping]
* xref:cops_style.adoc#stylealias[Style/Alias]
* xref:cops_style.adoc#styleandor[Style/AndOr]
* xref:cops_style.adoc#stylearraycoercion[Style/ArrayCoercion]
* xref:cops_style.adoc#stylearrayjoin[Style/ArrayJoin]
* xref:cops_style.adoc#styleasciicomments[Style/AsciiComments]
* xref:cops_style.adoc#styleattr[Style/Attr]
* xref:cops_style.adoc#styleautoresourcecleanup[Style/AutoResourceCleanup]
* xref:cops_style.adoc#stylebarepercentliterals[Style/BarePercentLiterals]
* xref:cops_style.adoc#stylebeginblock[Style/BeginBlock]
* xref:cops_style.adoc#stylebisectedattraccessor[Style/BisectedAttrAccessor]
* xref:cops_style.adoc#styleblockcomments[Style/BlockComments]
* xref:cops_style.adoc#styleblockdelimiters[Style/BlockDelimiters]
* xref:cops_style.adoc#stylecaseequality[Style/CaseEquality]
* xref:cops_style.adoc#stylecaselikeif[Style/CaseLikeIf]
* xref:cops_style.adoc#stylecharacterliteral[Style/CharacterLiteral]
* xref:cops_style.adoc#styleclassandmodulechildren[Style/ClassAndModuleChildren]
* xref:cops_style.adoc#styleclasscheck[Style/ClassCheck]
* xref:cops_style.adoc#styleclassmethods[Style/ClassMethods]
* xref:cops_style.adoc#styleclassvars[Style/ClassVars]
* xref:cops_style.adoc#stylecollectionmethods[Style/CollectionMethods]
* xref:cops_style.adoc#stylecolonmethodcall[Style/ColonMethodCall]
* xref:cops_style.adoc#stylecolonmethoddefinition[Style/ColonMethodDefinition]
* xref:cops_style.adoc#stylecommandliteral[Style/CommandLiteral]
* xref:cops_style.adoc#stylecommentannotation[Style/CommentAnnotation]
* xref:cops_style.adoc#stylecommentedkeyword[Style/CommentedKeyword]
* xref:cops_style.adoc#styleconditionalassignment[Style/ConditionalAssignment]
* xref:cops_style.adoc#styleconstantvisibility[Style/ConstantVisibility]
* xref:cops_style.adoc#stylecopyright[Style/Copyright]
* xref:cops_style.adoc#styledatetime[Style/DateTime]
* xref:cops_style.adoc#styledefwithparentheses[Style/DefWithParentheses]
* xref:cops_style.adoc#styledir[Style/Dir]
* xref:cops_style.adoc#styledisablecopswithinsourcecodedirective[Style/DisableCopsWithinSourceCodeDirective]
* xref:cops_style.adoc#styledocumentation[Style/Documentation]
* xref:cops_style.adoc#styledocumentationmethod[Style/DocumentationMethod]
* xref:cops_style.adoc#styledoublecopdisabledirective[Style/DoubleCopDisableDirective]
* xref:cops_style.adoc#styledoublenegation[Style/DoubleNegation]
* xref:cops_style.adoc#styleeachforsimpleloop[Style/EachForSimpleLoop]
* xref:cops_style.adoc#styleeachwithobject[Style/EachWithObject]
* xref:cops_style.adoc#styleemptyblockparameter[Style/EmptyBlockParameter]
* xref:cops_style.adoc#styleemptycasecondition[Style/EmptyCaseCondition]
* xref:cops_style.adoc#styleemptyelse[Style/EmptyElse]
* xref:cops_style.adoc#styleemptylambdaparameter[Style/EmptyLambdaParameter]
* xref:cops_style.adoc#styleemptyliteral[Style/EmptyLiteral]
* xref:cops_style.adoc#styleemptymethod[Style/EmptyMethod]
* xref:cops_style.adoc#styleencoding[Style/Encoding]
* xref:cops_style.adoc#styleendblock[Style/EndBlock]
* xref:cops_style.adoc#styleevalwithlocation[Style/EvalWithLocation]
* xref:cops_style.adoc#styleevenodd[Style/EvenOdd]
* xref:cops_style.adoc#styleexpandpatharguments[Style/ExpandPathArguments]
* xref:cops_style.adoc#styleexplicitblockargument[Style/ExplicitBlockArgument]
* xref:cops_style.adoc#styleexponentialnotation[Style/ExponentialNotation]
* xref:cops_style.adoc#stylefloatdivision[Style/FloatDivision]
* xref:cops_style.adoc#stylefor[Style/For]
* xref:cops_style.adoc#styleformatstring[Style/FormatString]
* xref:cops_style.adoc#styleformatstringtoken[Style/FormatStringToken]
* xref:cops_style.adoc#stylefrozenstringliteralcomment[Style/FrozenStringLiteralComment]
* xref:cops_style.adoc#styleglobalstdstream[Style/GlobalStdStream]
* xref:cops_style.adoc#styleglobalvars[Style/GlobalVars]
* xref:cops_style.adoc#styleguardclause[Style/GuardClause]
* xref:cops_style.adoc#stylehashaslastarrayitem[Style/HashAsLastArrayItem]
* xref:cops_style.adoc#stylehasheachmethods[Style/HashEachMethods]
* xref:cops_style.adoc#stylehashlikecase[Style/HashLikeCase]
* xref:cops_style.adoc#stylehashsyntax[Style/HashSyntax]
* xref:cops_style.adoc#stylehashtransformkeys[Style/HashTransformKeys]
* xref:cops_style.adoc#stylehashtransformvalues[Style/HashTransformValues]
* xref:cops_style.adoc#styleidenticalconditionalbranches[Style/IdenticalConditionalBranches]
* xref:cops_style.adoc#styleifinsideelse[Style/IfInsideElse]
* xref:cops_style.adoc#styleifunlessmodifier[Style/IfUnlessModifier]
* xref:cops_style.adoc#styleifunlessmodifierofifunless[Style/IfUnlessModifierOfIfUnless]
* xref:cops_style.adoc#styleifwithsemicolon[Style/IfWithSemicolon]
* xref:cops_style.adoc#styleimplicitruntimeerror[Style/ImplicitRuntimeError]
* xref:cops_style.adoc#styleinfiniteloop[Style/InfiniteLoop]
* xref:cops_style.adoc#styleinlinecomment[Style/InlineComment]
* xref:cops_style.adoc#styleinversemethods[Style/InverseMethods]
* xref:cops_style.adoc#styleipaddresses[Style/IpAddresses]
* xref:cops_style.adoc#stylelambda[Style/Lambda]
* xref:cops_style.adoc#stylelambdacall[Style/LambdaCall]
* xref:cops_style.adoc#stylelineendconcatenation[Style/LineEndConcatenation]
* xref:cops_style.adoc#stylemethodcallwithargsparentheses[Style/MethodCallWithArgsParentheses]
* xref:cops_style.adoc#stylemethodcallwithoutargsparentheses[Style/MethodCallWithoutArgsParentheses]
* xref:cops_style.adoc#stylemethodcalledondoendblock[Style/MethodCalledOnDoEndBlock]
* xref:cops_style.adoc#stylemethoddefparentheses[Style/MethodDefParentheses]
* xref:cops_style.adoc#styleminmax[Style/MinMax]
* xref:cops_style.adoc#stylemissingelse[Style/MissingElse]
* xref:cops_style.adoc#stylemissingrespondtomissing[Style/MissingRespondToMissing]
* xref:cops_style.adoc#stylemixingrouping[Style/MixinGrouping]
* xref:cops_style.adoc#stylemixinusage[Style/MixinUsage]
* xref:cops_style.adoc#stylemodulefunction[Style/ModuleFunction]
* xref:cops_style.adoc#stylemultilineblockchain[Style/MultilineBlockChain]
* xref:cops_style.adoc#stylemultilineifmodifier[Style/MultilineIfModifier]
* xref:cops_style.adoc#stylemultilineifthen[Style/MultilineIfThen]
* xref:cops_style.adoc#stylemultilinememoization[Style/MultilineMemoization]
* xref:cops_style.adoc#stylemultilinemethodsignature[Style/MultilineMethodSignature]
* xref:cops_style.adoc#stylemultilineternaryoperator[Style/MultilineTernaryOperator]
* xref:cops_style.adoc#stylemultilinewhenthen[Style/MultilineWhenThen]
* xref:cops_style.adoc#stylemultiplecomparison[Style/MultipleComparison]
* xref:cops_style.adoc#stylemutableconstant[Style/MutableConstant]
* xref:cops_style.adoc#stylenegatedif[Style/NegatedIf]
* xref:cops_style.adoc#stylenegatedunless[Style/NegatedUnless]
* xref:cops_style.adoc#stylenegatedwhile[Style/NegatedWhile]
* xref:cops_style.adoc#stylenestedmodifier[Style/NestedModifier]
* xref:cops_style.adoc#stylenestedparenthesizedcalls[Style/NestedParenthesizedCalls]
* xref:cops_style.adoc#stylenestedternaryoperator[Style/NestedTernaryOperator]
* xref:cops_style.adoc#stylenext[Style/Next]
* xref:cops_style.adoc#stylenilcomparison[Style/NilComparison]
* xref:cops_style.adoc#stylenonnilcheck[Style/NonNilCheck]
* xref:cops_style.adoc#stylenot[Style/Not]
* xref:cops_style.adoc#stylenumericliteralprefix[Style/NumericLiteralPrefix]
* xref:cops_style.adoc#stylenumericliterals[Style/NumericLiterals]
* xref:cops_style.adoc#stylenumericpredicate[Style/NumericPredicate]
* xref:cops_style.adoc#styleonelineconditional[Style/OneLineConditional]
* xref:cops_style.adoc#styleoptionhash[Style/OptionHash]
* xref:cops_style.adoc#styleoptionalarguments[Style/OptionalArguments]
* xref:cops_style.adoc#styleoptionalbooleanparameter[Style/OptionalBooleanParameter]
* xref:cops_style.adoc#styleorassignment[Style/OrAssignment]
* xref:cops_style.adoc#styleparallelassignment[Style/ParallelAssignment]
* xref:cops_style.adoc#styleparenthesesaroundcondition[Style/ParenthesesAroundCondition]
* xref:cops_style.adoc#stylepercentliteraldelimiters[Style/PercentLiteralDelimiters]
* xref:cops_style.adoc#stylepercentqliterals[Style/PercentQLiterals]
* xref:cops_style.adoc#styleperlbackrefs[Style/PerlBackrefs]
* xref:cops_style.adoc#stylepreferredhashmethods[Style/PreferredHashMethods]
* xref:cops_style.adoc#styleproc[Style/Proc]
* xref:cops_style.adoc#styleraiseargs[Style/RaiseArgs]
* xref:cops_style.adoc#stylerandomwithoffset[Style/RandomWithOffset]
* xref:cops_style.adoc#styleredundantassignment[Style/RedundantAssignment]
* xref:cops_style.adoc#styleredundantbegin[Style/RedundantBegin]
* xref:cops_style.adoc#styleredundantcapitalw[Style/RedundantCapitalW]
* xref:cops_style.adoc#styleredundantcondition[Style/RedundantCondition]
* xref:cops_style.adoc#styleredundantconditional[Style/RedundantConditional]
* xref:cops_style.adoc#styleredundantexception[Style/RedundantException]
* xref:cops_style.adoc#styleredundantfetchblock[Style/RedundantFetchBlock]
* xref:cops_style.adoc#styleredundantfileextensioninrequire[Style/RedundantFileExtensionInRequire]
* xref:cops_style.adoc#styleredundantfreeze[Style/RedundantFreeze]
* xref:cops_style.adoc#styleredundantinterpolation[Style/RedundantInterpolation]
* xref:cops_style.adoc#styleredundantparentheses[Style/RedundantParentheses]
* xref:cops_style.adoc#styleredundantpercentq[Style/RedundantPercentQ]
* xref:cops_style.adoc#styleredundantregexpcharacterclass[Style/RedundantRegexpCharacterClass]
* xref:cops_style.adoc#styleredundantregexpescape[Style/RedundantRegexpEscape]
* xref:cops_style.adoc#styleredundantreturn[Style/RedundantReturn]
* xref:cops_style.adoc#styleredundantself[Style/RedundantSelf]
* xref:cops_style.adoc#styleredundantsort[Style/RedundantSort]
* xref:cops_style.adoc#styleredundantsortby[Style/RedundantSortBy]
* xref:cops_style.adoc#styleregexpliteral[Style/RegexpLiteral]
* xref:cops_style.adoc#stylerescuemodifier[Style/RescueModifier]
* xref:cops_style.adoc#stylerescuestandarderror[Style/RescueStandardError]
* xref:cops_style.adoc#stylereturnnil[Style/ReturnNil]
* xref:cops_style.adoc#stylesafenavigation[Style/SafeNavigation]
* xref:cops_style.adoc#stylesample[Style/Sample]
* xref:cops_style.adoc#styleselfassignment[Style/SelfAssignment]
* xref:cops_style.adoc#stylesemicolon[Style/Semicolon]
* xref:cops_style.adoc#stylesend[Style/Send]
* xref:cops_style.adoc#stylesignalexception[Style/SignalException]
* xref:cops_style.adoc#stylesingleargumentdig[Style/SingleArgumentDig]
* xref:cops_style.adoc#stylesinglelineblockparams[Style/SingleLineBlockParams]
* xref:cops_style.adoc#stylesinglelinemethods[Style/SingleLineMethods]
* xref:cops_style.adoc#styleslicingwithrange[Style/SlicingWithRange]
* xref:cops_style.adoc#stylespecialglobalvars[Style/SpecialGlobalVars]
* xref:cops_style.adoc#stylestabbylambdaparentheses[Style/StabbyLambdaParentheses]
* xref:cops_style.adoc#stylestderrputs[Style/StderrPuts]
* xref:cops_style.adoc#stylestringconcatenation[Style/StringConcatenation]
* xref:cops_style.adoc#stylestringhashkeys[Style/StringHashKeys]
* xref:cops_style.adoc#stylestringliterals[Style/StringLiterals]
* xref:cops_style.adoc#stylestringliteralsininterpolation[Style/StringLiteralsInInterpolation]
* xref:cops_style.adoc#stylestringmethods[Style/StringMethods]
* xref:cops_style.adoc#stylestrip[Style/Strip]
* xref:cops_style.adoc#stylestructinheritance[Style/StructInheritance]
* xref:cops_style.adoc#stylesymbolarray[Style/SymbolArray]
* xref:cops_style.adoc#stylesymbolliteral[Style/SymbolLiteral]
* xref:cops_style.adoc#stylesymbolproc[Style/SymbolProc]
* xref:cops_style.adoc#styleternaryparentheses[Style/TernaryParentheses]
* xref:cops_style.adoc#styletrailingbodyonclass[Style/TrailingBodyOnClass]
* xref:cops_style.adoc#styletrailingbodyonmethoddefinition[Style/TrailingBodyOnMethodDefinition]
* xref:cops_style.adoc#styletrailingbodyonmodule[Style/TrailingBodyOnModule]
* xref:cops_style.adoc#styletrailingcommainarguments[Style/TrailingCommaInArguments]
* xref:cops_style.adoc#styletrailingcommainarrayliteral[Style/TrailingCommaInArrayLiteral]
* xref:cops_style.adoc#styletrailingcommainblockargs[Style/TrailingCommaInBlockArgs]
* xref:cops_style.adoc#styletrailingcommainhashliteral[Style/TrailingCommaInHashLiteral]
* xref:cops_style.adoc#styletrailingmethodendstatement[Style/TrailingMethodEndStatement]
* xref:cops_style.adoc#styletrailingunderscorevariable[Style/TrailingUnderscoreVariable]
* xref:cops_style.adoc#styletrivialaccessors[Style/TrivialAccessors]
* xref:cops_style.adoc#styleunlesselse[Style/UnlessElse]
* xref:cops_style.adoc#styleunpackfirst[Style/UnpackFirst]
* xref:cops_style.adoc#stylevariableinterpolation[Style/VariableInterpolation]
* xref:cops_style.adoc#stylewhenthen[Style/WhenThen]
* xref:cops_style.adoc#stylewhileuntildo[Style/WhileUntilDo]
* xref:cops_style.adoc#stylewhileuntilmodifier[Style/WhileUntilModifier]
* xref:cops_style.adoc#stylewordarray[Style/WordArray]
* xref:cops_style.adoc#styleyodacondition[Style/YodaCondition]
* xref:cops_style.adoc#stylezerolengthpredicate[Style/ZeroLengthPredicate]

// END_COP_LIST
