ddfreyne/d-parse

View on GitHub
.rubocop.yml

Summary

Maintainability
Test Coverage
inherit_from: .rubocop_todo.yml

# ----- CONFIGURED -----

AllCops:
  TargetRubyVersion: 3.0.1
  DisplayCopNames: true
  Exclude:
    - "scripts/*"

Style/TrailingCommaInArguments:
  EnforcedStyleForMultiline: consistent_comma

Style/TrailingCommaInArrayLiteral:
  EnforcedStyleForMultiline: consistent_comma

Style/TrailingCommaInHashLiteral:
  EnforcedStyleForMultiline: consistent_comma

# ----- NEW -----

Gemspec/DateAssignment: # (new in 1.10)
  Enabled: true
Layout/SpaceBeforeBrackets: # (new in 1.7)
  Enabled: true
Lint/AmbiguousAssignment: # (new in 1.7)
  Enabled: true
Lint/DeprecatedConstants: # (new in 1.8)
  Enabled: true
Lint/DuplicateBranch: # (new in 1.3)
  Enabled: true
Lint/DuplicateRegexpCharacterClassElement: # (new in 1.1)
  Enabled: true
Lint/EmptyBlock: # (new in 1.1)
  Enabled: true
Lint/EmptyClass: # (new in 1.3)
  Enabled: true
Lint/LambdaWithoutLiteralBlock: # (new in 1.8)
  Enabled: true
Lint/NoReturnInBeginEndBlocks: # (new in 1.2)
  Enabled: true
Lint/NumberedParameterAssignment: # (new in 1.9)
  Enabled: true
Lint/OrAssignmentToConstant: # (new in 1.9)
  Enabled: true
Lint/RedundantDirGlobSort: # (new in 1.8)
  Enabled: true
Lint/SymbolConversion: # (new in 1.9)
  Enabled: true
Lint/ToEnumArguments: # (new in 1.1)
  Enabled: true
Lint/TripleQuotes: # (new in 1.9)
  Enabled: true
Lint/UnexpectedBlockArity: # (new in 1.5)
  Enabled: true
Lint/UnmodifiedReduceAccumulator: # (new in 1.1)
  Enabled: true
Style/ArgumentsForwarding: # (new in 1.1)
  Enabled: true
Style/CollectionCompact: # (new in 1.2)
  Enabled: true
Style/DocumentDynamicEvalDefinition: # (new in 1.1)
  Enabled: true
Style/EndlessMethod: # (new in 1.8)
  Enabled: true
Style/HashConversion: # (new in 1.10)
  Enabled: true
Style/HashExcept: # (new in 1.7)
  Enabled: true
Style/IfWithBooleanLiteralBranches: # (new in 1.9)
  Enabled: true
Style/NegatedIfElseCondition: # (new in 1.2)
  Enabled: true
Style/NilLambda: # (new in 1.3)
  Enabled: true
Style/RedundantArgument: # (new in 1.4)
  Enabled: true
Style/StringChars: # (new in 1.12)
  Enabled: true
Style/SwapValues: # (new in 1.1)
  Enabled: true

# ----- DISABLED (to enable later) -----

Naming/MethodParameterName:
  Enabled: false

# ----- DISABLED (opinionated) -----

# We should embrace UTF-8, not avoid it. Since the Encoding cop is enabled,
# there’s no point in enforcing ASCII comments.
Style/AsciiComments:
  Enabled: false

# It does not make sense to enforce everything to have documentation.
Style/Documentation:
  Enabled: false

Style/RaiseArgs:
  Enabled: false

# This doesn’t always make the code more clear.
Style/GuardClause:
  Enabled: false

# Prefixing the memoized instance variable name with an underscore makes it
# clear that it is not intended to be used directly.
Naming/MemoizedInstanceVariableName:
  Enabled: false

# ----- DISABLED (metrics) -----

# Cops for metrics are disabled because they should not cause tests to fail.

Metrics/AbcSize:
  Enabled: false

Metrics/BlockLength:
  Enabled: false

Metrics/BlockNesting:
  Enabled: false

Metrics/ClassLength:
  Enabled: false

Metrics/CyclomaticComplexity:
  Enabled: false

Layout/LineLength:
  Enabled: false

Metrics/MethodLength:
  Enabled: false

Metrics/ModuleLength:
  Enabled: false

Metrics/ParameterLists:
  Enabled: false

Metrics/PerceivedComplexity:
  Enabled: false