AllCops: # Exclude generated files Exclude: - 'bin/**/*' - 'node_modules/**/*' - 'artifacts/**/*' # 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 # We meant to do that Naming/MemoizedInstanceVariableName: Enabled: False # It works in context, trust us Naming/MethodParameterName: Enabled: False # Confusing and weird Naming/VariableNumber: 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 # Requiring the lambda() method just makes wordy calls wordier Style/Lambda: EnforcedStyle: literal # `foo.positive?` is cute, but it's not actually more readable than `foo > 0` Style/NumericPredicate: Enabled: false # Don't be unnecessarily redundant Style/ReturnNil: Enabled: true EnforcedStyle: return # Unclear why it's a good idea to give parameters semantically meaningless names Style/SingleLineBlockParams: Enabled: false # The semantics of `foo&.bar` are a lot less interchangeable with `foo && foo.bar` than RuboCop thinks Style/SafeNavigation: 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