• Robert Speicher's avatar
    Merge branch 'complexity/enable-multiple-rubocop-cops' into 'master' · c002a560
    Robert Speicher authored
    Enable multiple Rubocop cops that can be enabled
    
    See https://gitlab.com/gitlab-org/gitlab-ce/issues/17406
    
    This enabled following cops:
    
    ```text
    Lint/CircularArgumentReference:
      Description: Default values in optional keyword arguments and optional ordinal arguments
    ----------------
    Lint/ConditionPosition:
      Description: Checks for condition placed in a confusing position relative to the keyword.
      StyleGuide: https://github.com/bbatsov/ruby-style-guide#same-line-condition
    ----------------
    Lint/Debugger:
      Description: Check for debugger calls.
    ----------------
    Lint/DefEndAlignment:
      Description: Align ends corresponding to defs correctly.
    ----------------
    Lint/DuplicateMethods:
      Description: Check for duplicate method definitions.
    ----------------
    Lint/DuplicatedKey:
      Description: Check for duplicate keys in hash literals.
    ----------------
    Lint/EachWithObjectArgument:
      Description: Check for immutable argument given to each_with_object.
    ----------------
    Lint/ElseLayout:
      Description: Check for odd code arrangement in an else block.
    ----------------
    Lint/EmptyEnsure:
      Description: Checks for empty ensure block.
    ----------------
    Lint/EmptyInterpolation:
      Description: Checks for empty string interpolation.
    ----------------
    Lint/EndAlignment:
      Description: Align ends correctly.
    ----------------
    Lint/EndInMethod:
      Description: END blocks should not be placed inside method definitions.
    ----------------
    Lint/EnsureReturn:
      Description: Do not use return in an ensure block.
      StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-return-ensure
    ----------------
    Lint/Eval:
      Description: The use of eval represents a serious security risk.
    ----------------
    Lint/FloatOutOfRange:
      Description: Catches floating-point literals too large or small for Ruby to represent.
    ----------------
    Lint/FormatParameterMismatch:
      Description: The number of parameters to format/sprint must match the fields.
    ----------------
    Lint/ImplicitStringConcatenation:
      Description: Checks for adjacent string literals on the same line, which could better
        be represented as a single string literal.
    ----------------
    Lint/InvalidCharacterLiteral:
      Description: Checks for invalid character literals with a non-escaped whitespace character.
    ----------------
    Lint/LiteralInInterpolation:
      Description: Checks for literals used in interpolation.
    ----------------
    Lint/NestedMethodDefinition:
      Description: Do not use nested method definitions.
      StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-nested-methods
    ----------------
    Lint/NextWithoutAccumulator:
      Description: Do not omit the accumulator when calling `next` in a `reduce`/`inject`
        block.
    ----------------
    Lint/RandOne:
      Description: Checks for `rand(1)` calls. Such calls always return `0` and most likely
        a mistake.
    ----------------
    Lint/RequireParentheses:
      Description: Use parentheses in the method call to avoid confusion about precedence.
    ----------------
    Lint/UnreachableCode:
      Description: Unreachable code.
    ----------------
    Lint/UselessComparison:
      Description: Checks for comparison of something with itself.
    ----------------
    Lint/UselessElseWithoutRescue:
      Description: Checks for useless `else` in `begin..end` without `rescue`.
    ----------------
    Lint/UselessSetterCall:
      Description: Checks for useless setter call to a local variable.
    ----------------
    Lint/Void:
      Description: Possible use of operator/literal/variable in void context.
    ----------------
    Performance/DoubleStartEndWith:
      Description: Use `str.{start,end}_with?(x, ..., y, ...)` instead of `str.{start,end}_with?(x,
        ...) || str.{start,end}_with?(y, ...)`.
    ----------------
    Performance/RedundantSortBy:
      Description: Use `sort` instead of `sort_by { |x| x }`.
    ----------------
    Rails/FindBy:
      Description: Prefer find_by over where.first.
      Include:
      - app/models/**/*.rb
    ----------------
    Rails/FindEach:
      Description: Prefer all.find_each over all.find.
      Include:
      - app/models/**/*.rb
    ----------------
    Rails/PluralizationGrammar:
      Description: Checks for incorrect grammar when using methods like `3.day.ago`.
    ----------------
    Rails/ScopeArgs:
      Description: Checks the arguments of ActiveRecord scopes.
      Include:
      - app/models/**/*.rb
    ```
    
    See merge request !4261
    c002a560