# These are all the cops that are enabled in the default configuration.

AccessModifierIndentation:
  Description: Check indentation of private/protected visibility modifiers.
  Enabled: true

AccessorMethodName:
  Description: Check the naming of accessor methods for get_/set_.
  Enabled: true

Alias:
  Description: 'Use alias_method instead of alias.'
  Enabled: true

AlignArray:
  Description: >-
                 Align the elements of an array literal if they span more than
                 one line.
  Enabled: true

AlignHash:
  Description: >-
                 Align the elements of a hash literal if they span more than
                 one line.
  Enabled: true

AlignParameters:
  Description: >-
                 Align the parameters of a method call if they span more
                 than one line.
  Enabled: true

AndOr:
  Description: 'Use &&/|| instead of and/or.'
  Enabled: true

AsciiComments:
  Description: 'Use only ascii symbols in comments.'
  Enabled: true

AsciiIdentifiers:
  Description: 'Use only ascii symbols in identifiers.'
  Enabled: true

Attr:
  Description: 'Checks for uses of Module#attr.'
  Enabled: true

BeginBlock:
  Description: 'Avoid the use of BEGIN blocks.'
  Enabled: true

BlockComments:
  Description: 'Do not use block comments.'
  Enabled: true

BlockNesting:
  Description: 'Avoid excessive block nesting'
  Enabled: true

Blocks:
  Description: >-
                Avoid using {...} for multi-line blocks (multiline chaining is
                always ugly).
                Prefer {...} over do...end for single-line blocks.
  Enabled: true

BracesAroundHashParameters:
  Description: 'Enforce braces style inside hash parameters.'
  Enabled: true

CaseEquality:
  Description: 'Avoid explicit use of the case equality operator(===).'
  Enabled: true

CaseIndentation:
  Description: 'Indentation of when in a case/when/[else/]end.'
  Enabled: true

CharacterLiteral:
  Description: 'Checks for uses of character literals.'
  Enabled: true

ClassAndModuleCamelCase:
  Description: 'Use CamelCase for classes and modules.'
  Enabled: true

ClassLength:
  Description: 'Avoid classes longer than 100 lines of code.'
  Enabled: true

ClassMethods:
  Description: 'Use self when defining module/class methods.'
  Enabled: true

ClassVars:
  Description: 'Avoid the use of class variables.'
  Enabled: true

CollectionMethods:
  Description: 'Preferred collection methods.'
  Enabled: true

ColonMethodCall:
  Description: 'Do not use :: for method call.'
  Enabled: true

CommentAnnotation:
  Description: >-
                 Checks formatting of special comments
                 (TODO, FIXME, OPTIMIZE, HACK, REVIEW).
  Enabled: true

ConstantName:
  Description: 'Constants should use SCREAMING_SNAKE_CASE.'
  Enabled: true

CyclomaticComplexity:
  Description: 'Avoid complex methods.'
  Enabled: true

DefWithParentheses:
  Description: 'Use def with parentheses when there are arguments.'
  Enabled: true

Documentation:
  Description: 'Document classes and non-namespace modules.'
  Enabled: true

DotPosition:
  Description: 'Checks the position of the dot in multi-line method calls.'
  Enabled: true

EmptyLineBetweenDefs:
  Description: 'Use empty lines between defs.'
  Enabled: true

EmptyLines:
  Description: "Don't use several empty lines in a row."
  Enabled: true

EmptyLinesAroundAccessModifier:
  Description: "Keep blank lines around access modifiers."
  Enabled: true

EmptyLinesAroundBody:
  Description: "Keeps track of empty lines around expression bodies."
  Enabled: true

EmptyLiteral:
  Description: 'Prefer literals to Array.new/Hash.new/String.new.'
  Enabled: true

EndBlock:
  Description: 'Avoid the use of END blocks.'
  Enabled: true

EndOfLine:
  Description: 'Use Unix-style line endings.'
  Enabled: true

EvenOdd:
  Description: 'Favor the use of Fixnum#even? && Fixnum#odd?'
  Enabled: true

FavorJoin:
  Description: 'Use Array#join instead of Array#*.'
  Enabled: true

FavorUnlessOverNegatedIf:
  Description: >-
                 Favor unless over if for negative conditions
                 (or control flow or).
  Enabled: true

FavorUntilOverNegatedWhile:
  Description: 'Favor until over while for negative conditions.'
  Enabled: true

FileName:
  Description: 'Use snake_case for source file names.'
  Enabled: true

FinalNewline:
  Description: 'Checks for a final newline in a source file.'
  Enabled: true

FlipFlop:
  Description: 'Checks for flip flops'
  Enabled: true

For:
  Description: 'Checks use of for or each in multiline loops.'
  Enabled: true

FormatString:
  Description: 'Enforce the use of Kernel#sprintf, Kernel#format or String#%.'
  Enabled: true

GlobalVars:
  Description: 'Do not introduce global variables.'
  Enabled: true

HashMethods:
  Description: 'Checks for use of deprecated Hash methods.'
  Enabled: true

HashSyntax:
  Description: >-
                 Prefer Ruby 1.9 hash syntax { a: 1, b: 2 } over 1.8 syntax
                 { :a => 1, :b => 2 }.
  Enabled: true

IfUnlessModifier:
  Description: >-
                 Favor modifier if/unless usage when you have a
                 single-line body.
  Enabled: true

IfWithSemicolon:
  Description: 'Never use if x; .... Use the ternary operator instead.'
  Enabled: true

IndentationConsistency:
  Description: 'Keep indentation straight.'
  Enabled: true

IndentationWidth:
  Description: 'Use 2 spaces for indentation.'
  Enabled: true

IndentArray:
  Description: >-
                 Checks the indentation of the first element in an array
                 literal.
  Enabled: true

IndentHash:
  Description: 'Checks the indentation of the first key in a hash literal.'
  Enabled: true

Lambda:
  Description: 'Use the new lambda literal syntax for single-line blocks.'
  Enabled: true

LambdaCall:
  Description: 'Use lambda.call(...) instead of lambda.(...).'
  Enabled: true

LeadingCommentSpace:
  Description: 'Comments should start with a space.'
  Enabled: true

LineEndConcatenation:
  Description: 'Use \\ instead of + to concatenate two string literals at line end.'
  Enabled: true

LineLength:
  Description: 'Limit lines to 79 characters.'
  Enabled: true

MethodCalledOnDoEndBlock:
  Description: 'Avoid chaining a method call on a do...end block.'
  Enabled: true

MethodCallParentheses:
  Description: 'Do not use parentheses for method calls with no arguments.'
  Enabled: true

MethodDefParentheses:
  Description: >-
                 Checks if the method definitions have or don't have
                 parentheses.
  Enabled: true

MethodLength:
  Description: 'Avoid methods longer than 10 lines of code.'
  Enabled: true

MethodName:
  Description: 'Use the configured style when naming methods.'
  Enabled: true

ModuleFunction:
  Description: 'Checks for usage of `extend self` in modules.'
  Enabled: true

MultilineBlockChain:
  Description: 'Avoid multi-line chains of blocks.'
  Enabled: true

MultilineIfThen:
  Description: 'Never use then for multi-line if/unless.'
  Enabled: true

MultilineTernaryOperator:
  Description: >-
                 Avoid multi-line ?: (the ternary operator);
                 use if/unless instead.
  Enabled: true

NestedTernaryOperator:
  Description: 'Use one expression per branch in a ternary operator.'
  Enabled: true

NilComparison:
  Description: 'Prefer x.nil? to x == nil.'
  Enabled: true

Not:
  Description: 'Use ! instead of not.'
  Enabled: true

NumericLiterals:
  Description: >-
                 Add underscores to large numeric literals to improve their
                 readability.
  Enabled: true

OneLineConditional:
  Description: >-
                 Favor the ternary operator(?:) over
                 if/then/else/end constructs.
  Enabled: true

OpMethod:
  Description: 'When defining binary operators, name the argument other.'
  Enabled: true

ParameterLists:
  Description: 'Avoid parameter lists longer than three or four parameters.'
  Enabled: true

ParenthesesAroundCondition:
  Description: >-
                 Don't use parentheses around the condition of an
                 if/unless/while.
  Enabled: true

PerlBackrefs:
  Description: 'Avoid Perl-style regex back references.'
  Enabled: true

PredicateName:
  Description: 'Check the names of predicate methods.'
  Enabled: true

Proc:
  Description: 'Use proc instead of Proc.new.'
  Enabled: true

RaiseArgs:
  Description: 'Checks the arguments passed to raise/fail.'
  Enabled: true

RedundantBegin:
  Description: "Don't use begin blocks when they are not needed."
  Enabled: true

RedundantException:
  Description: "Checks for an obsolete RuntimeException argument in raise/fail."
  Enabled: true

RedundantReturn:
  Description: "Don't use return where it's not required."
  Enabled: true

RedundantSelf:
  Description: "Don't use self where it's not needed."
  Enabled: true

RegexpLiteral:
  Description: >-
                 Use %r for regular expressions matching more than
                 `MaxSlashes` '/' characters.
                 Use %r only for regular expressions matching more than
                 `MaxSlashes` '/' character.
  Enabled: true

RescueModifier:
  Description: 'Avoid using rescue in its modifier form.'
  Enabled: true

Semicolon:
  Description: "Don't use semicolons to terminate expressions."
  Enabled: true

SignalException:
  Description: 'Checks for proper usage of fail and raise.'
  Enabled: true

SingleLineBlockParams:
  Description: 'Enforces the names of some block params.'
  Enabled: true

SingleLineMethods:
  Description: 'Avoid single-line methods.'
  Enabled: true

SpaceAfterColon:
  Description: 'Use spaces after colons.'
  Enabled: true

SpaceAfterComma:
  Description: 'Use spaces after commas.'
  Enabled: true

SpaceAfterControlKeyword:
  Description: 'Use spaces after if/elsif/unless/while/until/case/when.'
  Enabled: true

SpaceAfterMethodName:
  Description: >-
                 Never put a space between a method name and the opening
                 parenthesis.
  Enabled: true

SpaceAfterNot:
  Description: Tracks redundant space after the ! operator.
  Enabled: true

SpaceAfterSemicolon:
  Description: 'Use spaces after semicolons.'
  Enabled: true

SpaceAroundBlockBraces:
  Description: >-
                 Checks that block braces have or don't have surrounding space.
                 For blocks taking parameters, checks that the left brace has
                 or doesn't have trailing space.
  Enabled: true

SpaceAroundEqualsInParameterDefault:
  Description: >-
                 Use spaces around the = operator when assigning default
                 values in def params.
  Enabled: true

SpaceAroundOperators:
  Description: 'Use spaces around operators.'
  Enabled: true

SpaceBeforeModifierKeyword:
  Description: 'Put a space before the modifier keyword.'
  Enabled: true

SpaceInsideBrackets:
  Description: 'No spaces after [ or before ].'
  Enabled: true

SpaceInsideHashLiteralBraces:
  Description: "Use spaces inside hash literal braces - or don't."
  Enabled: true

SpaceInsideParens:
  Description: 'No spaces after ( or before ).'
  Enabled: true

SpecialGlobalVars:
  Description: 'Avoid Perl-style global variables.'
  Enabled: true

StringLiterals:
  Description: 'Checks if uses of quotes match the configured preference.'
  Enabled: true

Tab:
  Description: 'No hard tabs.'
  Enabled: true

TrailingBlankLines:
  Description: 'Checks for superfluous trailing blank lines.'
  Enabled: true

TrailingComma:
  Description: 'Checks for trailing comma in parameter lists and literals.'
  Enabled: true

TrailingWhitespace:
  Description: 'Avoid trailing whitespace.'
  Enabled: true

TrivialAccessors:
  Description: 'Prefer attr_* methods to trivial readers/writers.'
  Enabled: true

UnlessElse:
  Description: >-
                 Never use unless with else. Rewrite these with the positive
                 case first.
  Enabled: true

VariableInterpolation:
  Description: >-
                 Don't interpolate global, instance and class variables
                 directly in strings.
  Enabled: true

VariableName:
  Description: 'Use the configured style when naming variables.'
  Enabled: true

WhenThen:
  Description: 'Use when x then ... for one-line cases.'
  Enabled: true

WhileUntilDo:
  Description: 'Checks for redundant do after while or until.'
  Enabled: true

WhileUntilModifier:
  Description: >-
                 Favor modifier while/until usage when you have a
                 single-line body.
  Enabled: true

WordArray:
  Description: 'Use %w or %W for arrays of words.'
  Enabled: true

#################### Lint ################################
### Warnings

AmbiguousOperator:
  Description: >-
                 Checks for ambiguous operators in the first argument of a
                 method invocation without parentheses.
  Enabled: true

AmbiguousRegexpLiteral:
  Description: >-
                 Checks for ambiguous regexp literals in the first argument of
                 a method invocation without parenthesis.
  Enabled: true

AssignmentInCondition:
  Description: "Don't use assignment in conditions."
  Enabled: true

BlockAlignment:
  Description: 'Align block ends correctly.'
  Enabled: true

ConditionPosition:
  Description: 'Checks for condition placed in a confusing position relative to the keyword.'
  Enabled: true

Debugger:
  Description: 'Check for debugger calls.'
  Enabled: true

DeprecatedClassMethods:
  Description: 'Check for deprecated class method calls.'
  Enabled: true

ElseLayout:
  Description: 'Check for odd code arrangement in an else block.'
  Enabled: true

EmptyEnsure:
  Description: 'Checks for empty ensure block.'
  Enabled: true

EndAlignment:
  Description: 'Align ends correctly.'
  Enabled: true

EndInMethod:
  Description: 'END blocks should not be placed inside method definitions.'
  Enabled: true

EnsureReturn:
  Description: 'Never use return in an ensure block.'
  Enabled: true

Eval:
  Description: 'The use of eval represents a serious security risk.'
  Enabled: true

HandleExceptions:
  Description: "Don't suppress exception."
  Enabled: true

InvalidCharacterLiteral:
  Description: >-
                 Checks for invalid character literals with a non-escaped
                 whitespace character.
  Enabled: true

LiteralInCondition:
  Description: 'Checks of literals used in conditions.'
  Enabled: true

LiteralInInterpolation:
  Description: 'Checks for literals used in interpolation.'
  Enabled: true

Loop:
  Description: >-
                 Use Kernel#loop with break rather than begin/end/until or
                 begin/end/while for post-loop tests.
  Enabled: true

ParenthesesAsGroupedExpression:
  Description: >-
                 Checks for method calls with a space before the opening
                 parenthesis.
  Enabled: true

RequireParentheses:
  Description: >-
                 Use parentheses in the method call to avoid confusion
                 about precedence.
  Enabled: true

RescueException:
  Description: 'Avoid rescuing the Exception class.'
  Enabled: true

ShadowingOuterLocalVariable:
  Description: >-
                 Do not use the same name as outer local variable
                 for block arguments or block local variables.
  Enabled: true

StringConversionInInterpolation:
  Description: 'Checks for Object#to_s usage in string interpolation.'
  Enabled: true

UnreachableCode:
  Description: 'Unreachable code.'
  Enabled: true

UselessAssignment:
  Description: 'Checks for useless assignment to a local variable.'
  Enabled: true

UselessComparison:
  Description: 'Checks for comparison of something with itself.'
  Enabled: true

UselessElseWithoutRescue:
  Description: 'Checks for useless `else` in `begin..end` without `rescue`.'
  Enabled: true

UselessSetterCall:
  Description: 'Checks for useless setter call to a local variable.'
  Enabled: true

Void:
  Description: 'Possible use of operator/literal/variable in void context.'
  Enabled: true
