dmolesUC/typesafe_enum

View on GitHub
.rubocop.yml

Summary

Maintainability
Test Coverage
# Allow one line around block body (Layout/EmptyLines will still disallow two or more)
Layout/EmptyLinesAroundBlockBody:
  Enabled: false

# Allow one line around class body (Layout/EmptyLines will still disallow two or more)
Layout/EmptyLinesAroundClassBody:
  Enabled: false

# Allow one line around module body (Layout/EmptyLines will still disallow two or more)
Layout/EmptyLinesAroundModuleBody:
  Enabled: false

# Reasonable line-length check; it's too easy for the cure to be worse than the disease
Layout/LineLength:
  Max: 150

# Make indents consistent regardless of the lengths of variables and method names and whatnot
Layout/MultilineMethodCallIndentation:
  EnforcedStyle: indented

# Produces monsters
Layout/MultilineOperationIndentation:
  Enabled: false

# Confusing and weird
Naming/VariableNumber:
  Enabled: False

# We meant to do that
Naming/MemoizedInstanceVariableName:
  Enabled: False

# It works in context, trust us
Naming/MethodParameterName:
  Enabled: False

# Do what's readable in the context you're in
Style/AccessModifierDeclarations:
  Enabled: false

# 👎 to cultural imperialism
Style/AsciiComments:
  Enabled: false

# Seriously?
Style/CommentedKeyword:
  Enabled: False

# Disable problematic module documentation check (see https://github.com/bbatsov/rubocop/issues/947)
Style/Documentation:
  Enabled: false

# Adding more line noise to format strings will not improve them
Style/FormatStringToken:
  Enabled: false

# Putting '# frozen_string_literal: true' everywhere does not make the world a better place
Style/FrozenStringLiteralComment:
  Enabled: false

# `foo.positive?` is cute, but it's not actually more readable than `foo > 0`
Style/NumericPredicate:
  Enabled: false

# The semantics of `foo&.bar` are a lot less interchangeable with `foo && foo.bar` than RuboCop thinks
Style/SafeNavigation:
  Enabled: false

# Requiring the lambda() method just makes wordy calls wordier
Style/Lambda:
  EnforcedStyle: literal

# Unclear why it's a good idea to give parameters semantically meaningless names
Style/SingleLineBlockParams:
  Enabled: false

############################################################
# Added in RuboCop 0.80

Style/HashEachMethods:
  Enabled: true

Style/HashTransformKeys:
  Enabled: true

Style/HashTransformValues:
  Enabled: true

############################################################
# Added in RuboCop 0.81

Lint/StructNewOverride:
  Enabled: true

Lint/RaiseException:
  Enabled: true

############################################################
# Added in RuboCop 0.82

Layout/SpaceAroundMethodCallOperator:
  Enabled: true

Style/ExponentialNotation:
  Enabled: false

############################################################
# Added in RuboCop 0.83

Layout/EmptyLinesAroundAttributeAccessor:
  Enabled: true

Style/SlicingWithRange:
  Enabled: true

############################################################
# Added in RuboCop 0.84

Lint/DeprecatedOpenSSLConstant:
  Enabled: true

############################################################
# Added in RuboCop 0.85

Lint/MixedRegexpCaptureTypes:
  Enabled: true

Style/RedundantRegexpEscape:
  Enabled: true

Style/RedundantRegexpCharacterClass:
  Enabled: true

############################################################
# Added in Rubocop 0.86

Style/RedundantFetchBlock:
  Enabled: true

############################################################
# Added in Rubocop 0.87

# Sometimes we separate things for a reason
Style/AccessorGrouping:
  Enabled: false

Style/BisectedAttrAccessor:
  Enabled: true

Style/RedundantAssignment:
  Enabled: true

############################################################
# Added in Rubocop 0.88

Lint/DuplicateElsifCondition:
  Enabled: true

Style/ArrayCoercion:
  Enabled: true

Style/CaseLikeIf:
  Enabled: true

Style/HashAsLastArrayItem:
  Enabled: true

Style/HashLikeCase:
  Enabled: true

Style/RedundantFileExtensionInRequire:
  Enabled: true

############################################################
# Added in Rubocop 0.89

Lint/BinaryOperatorWithIdenticalOperands:
  Enabled: true

Lint/DuplicateRescueException:
  Enabled: true

Lint/EmptyConditionalBody:
  Enabled: true

Lint/FloatComparison:
  Enabled: true

Lint/MissingSuper:
  Enabled: true

Lint/OutOfRangeRegexpRef:
  Enabled: true

Lint/SelfAssignment:
  Enabled: true

Lint/TopLevelReturnWithArgument:
  Enabled: true

Lint/UnreachableLoop:
  Enabled: true

Style/ExplicitBlockArgument:
  Enabled: true

Style/GlobalStdStream:
  Enabled: true

Style/OptionalBooleanParameter:
  Enabled: true

Style/SingleArgumentDig:
  Enabled: true

Style/SoleNestedConditional:
  Enabled: true

Style/StringConcatenation:
  Enabled: true

############################################################
# Added in Rubocop 0.90

Lint/DuplicateRequire:
  Enabled: true

Lint/EmptyFile:
  Enabled: true

Lint/TrailingCommaInAttributeDeclaration:
  Enabled: true

Lint/UselessMethodDefinition:
  Enabled: true

Style/CombinableLoops:
  Enabled: true

Style/KeywordParametersOrder:
  Enabled: true

Style/RedundantSelfAssignment:
  Enabled: true

############################################################
# Added in Rubocop 0.91

Layout/BeginEndAlignment:
  Enabled: true

Lint/ConstantDefinitionInBlock:
  Enabled: true

Lint/IdentityComparison:
  Enabled: true

Lint/UselessTimes:
  Enabled: true