AllCops: Exclude: # Exclude generated files - 'bin/**/*' - 'db/**/*' - 'out/**/*' # Exclude vendor files in GitHub build - 'vendor/**/*' # 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 # Whether vertical or horizontal is more readable depends on context Style/AccessorGrouping: Enabled: false # Do what's readable in the context you're in Style/AccessModifierDeclarations: Enabled: false # 👎 to cultural imperialism Style/AsciiComments: Enabled: false # Style/ClassEqualityComparison: 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 ############################################################ # Enable newer cops Style/HashEachMethods: # (new in 0.80) Enabled: true Style/HashTransformKeys: # (new in 0.80) Enabled: true Style/HashTransformValues: # (new in 0.80) Enabled: true Lint/RaiseException: # (new in 0.81) Enabled: true Lint/StructNewOverride: # (new in 0.81) Enabled: true Layout/SpaceAroundMethodCallOperator: # (new in 0.82) Enabled: true Style/ExponentialNotation: # (new in 0.82) Enabled: false Layout/EmptyLinesAroundAttributeAccessor: # (new in 0.83) Enabled: true Style/SlicingWithRange: # (new in 0.83) Enabled: true Lint/DeprecatedOpenSSLConstant: # (new in 0.84) Enabled: true Lint/MixedRegexpCaptureTypes: # (new in 0.85) Enabled: true Style/RedundantRegexpCharacterClass: # (new in 0.85) Enabled: true Style/RedundantRegexpEscape: # (new in 0.85) Enabled: true Style/RedundantFetchBlock: # (new in 0.86) Enabled: true Lint/DuplicateRegexpCharacterClassElement: # (new in 1.1) Enabled: true Lint/EmptyBlock: # (new in 1.1) Enabled: true Lint/ToEnumArguments: # (new in 1.1) Enabled: true Lint/UnmodifiedReduceAccumulator: # (new in 1.1) Enabled: true Style/ArgumentsForwarding: # (new in 1.1) Enabled: true Style/DocumentDynamicEvalDefinition: # (new in 1.1) Enabled: true Style/SwapValues: # (new in 1.1) Enabled: true Lint/NoReturnInBeginEndBlocks: # (new in 1.2) Enabled: true Style/CollectionCompact: # (new in 1.2) Enabled: true Style/NegatedIfElseCondition: # (new in 1.2) Enabled: true Lint/DuplicateBranch: # (new in 1.3) Enabled: true Lint/EmptyClass: # (new in 1.3) Enabled: true Style/NilLambda: # (new in 1.3) Enabled: true Style/RedundantArgument: # (new in 1.4) Enabled: true Lint/UnexpectedBlockArity: # (new in 1.5) Enabled: true Layout/SpaceBeforeBrackets: # (new in 1.7) Enabled: true Lint/AmbiguousAssignment: # (new in 1.7) Enabled: true Style/HashExcept: # (new in 1.7) Enabled: true Lint/DeprecatedConstants: # (new in 1.8) Enabled: true Lint/LambdaWithoutLiteralBlock: # (new in 1.8) Enabled: true Lint/RedundantDirGlobSort: # (new in 1.8) Enabled: true Style/EndlessMethod: # (new in 1.8) Enabled: true Lint/NumberedParameterAssignment: # (new in 1.9) Enabled: true Lint/OrAssignmentToConstant: # (new in 1.9) Enabled: true Lint/SymbolConversion: # (new in 1.9) Enabled: true Lint/TripleQuotes: # (new in 1.9) Enabled: true Style/IfWithBooleanLiteralBranches: # (new in 1.9) Enabled: true Gemspec/DateAssignment: # (new in 1.10) Enabled: true Style/HashConversion: # (new in 1.10) Enabled: true Style/StringChars: # (new in 1.12) Enabled: true Lint/EmptyInPattern: # (new in 1.16) Enabled: true Style/InPatternThen: # (new in 1.16) Enabled: true Style/MultilineInPatternThen: # (new in 1.16) Enabled: true Style/QuotedSymbols: # (new in 1.16) Enabled: true Layout/LineEndStringConcatenationIndentation: # (new in 1.18) Enabled: true Naming/InclusiveLanguage: # (new in 1.18) Enabled: true Lint/AmbiguousRange: # new in 1.19 Enabled: true Style/RedundantSelfAssignmentBranch: # new in 1.19 Enabled: true Lint/AmbiguousOperatorPrecedence: # new in 1.21 Enabled: true Lint/IncompatibleIoSelectWithFiberScheduler: # new in 1.21 Enabled: true Lint/RequireRelativeSelfPath: # new in 1.22 Enabled: true Security/IoMethods: # new in 1.22 Enabled: true Style/NumberedParameters: # new in 1.22 Enabled: true Style/NumberedParametersLimit: # new in 1.22 Enabled: true Style/SelectByRegexp: # new in 1.22 Enabled: true Gemspec/RequireMFA: # new in 1.23 Enabled: true Lint/UselessRuby2Keywords: # new in 1.23 Enabled: true Style/OpenStructUse: # new in 1.23 Enabled: true Naming/BlockForwarding: # new in 1.24 Enabled: true Style/FileRead: # new in 1.24 Enabled: true Style/FileWrite: # new in 1.24 Enabled: true Style/MapToHash: # new in 1.24 Enabled: true Style/NestedFileDirname: # new in 1.26 Enabled: true