require: - rubocop-rails - rubocop-rspec AllCops: TargetRubyVersion: 2.7 Exclude: - db/schema.rb Layout/ConditionPosition: Enabled: false Layout/DotPosition: EnforcedStyle: leading Layout/LineLength: Max: 130 Layout/MultilineMethodCallIndentation: Enabled: false Lint/AmbiguousOperator: Enabled: false Lint/AmbiguousRegexpLiteral: Enabled: false Lint/AssignmentInCondition: Enabled: false Lint/DeprecatedClassMethods: Enabled: false Lint/ElseLayout: Enabled: false Lint/FlipFlop: Enabled: false Lint/LiteralInInterpolation: Enabled: false Lint/Loop: Enabled: false Lint/ParenthesesAsGroupedExpression: Enabled: false Lint/RequireParentheses: Enabled: false Lint/SuppressedException: Enabled: false Lint/UnderscorePrefixedVariableName: Enabled: false Lint/Void: Enabled: false Metrics/ClassLength: Enabled: false Metrics/CyclomaticComplexity: Enabled: false Metrics/BlockLength: Enabled: false Metrics/BlockNesting: Enabled: false Metrics/MethodLength: Enabled: false Metrics/ModuleLength: Enabled: false Metrics/ParameterLists: Enabled: false Naming/AccessorMethodName: Enabled: false Naming/AsciiIdentifiers: Enabled: false Naming/FileName: Enabled: false Naming/PredicateName: ForbiddenPrefixes: - is_ # For feature specs, we tend to have longer specs that cover a larger part of the functionality. # This is done for multiple reasons: # * performance, as setting up integration tests is costly # * following a scenario that is closer to how a user interacts RSpec/ExampleLength: Enabled: true Exclude: - 'spec/features/**/*.rb' - 'modules/*/spec/features/**/*.rb' # See RSpec/ExampleLength for why feature specs are excluded RSpec/MultipleExpectations Enabled: true Exclude: - 'spec/features/**/*.rb' - 'modules/*/spec/features/**/*.rb' Style/Alias: Enabled: false Style/AndOr: Enabled: false Style/ArrayJoin: Enabled: false Style/AsciiComments: Enabled: false Style/Attr: Enabled: false Style/CaseEquality: Enabled: false Style/CharacterLiteral: Enabled: false Style/ClassAndModuleChildren: Enabled: false Style/ClassVars: Enabled: false Style/CollectionMethods: PreferredMethods: find: detect reduce: inject collect: map find_all: select Style/ColonMethodCall: Enabled: false Style/CommentAnnotation: Enabled: false Style/PreferredHashMethods: Enabled: false Style/Documentation: Enabled: false Style/DoubleNegation: Enabled: false Style/EachWithObject: Enabled: false Style/EmptyLiteral: Enabled: false Style/Encoding: Enabled: false Style/EvenOdd: Enabled: false Style/FormatString: Enabled: false Style/GlobalVars: Enabled: false Style/GuardClause: Enabled: false Style/IfUnlessModifier: Enabled: false Style/IfWithSemicolon: Enabled: false Style/InlineComment: Enabled: false Style/Lambda: Enabled: false Style/LambdaCall: Enabled: false Style/LineEndConcatenation: Enabled: false Style/ModuleFunction: Enabled: false Style/NegatedIf: Enabled: false Style/NegatedWhile: Enabled: false Style/Next: Enabled: false Style/NilComparison: Enabled: false Style/Not: Enabled: false Style/OneLineConditional: Enabled: false Style/PercentLiteralDelimiters: Enabled: false Style/PerlBackrefs: Enabled: false Style/Proc: Enabled: false Style/RaiseArgs: Enabled: false Style/RegexpLiteral: Enabled: false Style/SelfAssignment: Enabled: false Style/SingleLineBlockParams: Enabled: false Style/SingleLineMethods: Enabled: false Style/SignalException: Enabled: false Style/SpecialGlobalVars: Enabled: false # Forcing single quotes doesn't give any reasonable advantages. To the contrary: # it forces you to change the quotes every time you want to add interpolation, # newlines or other escape sequences (\n), or quotes (') to a string. Rubbish. # Don't even think about performance. That never was a valid argument to begin with. # # For the record: using single quotes does NOT have any performance advantages. # Even if it did, this would be a silly argument. # # Ideally we would just use double quotes everywhere but since that would result # in innumerable rubocop offenses we will just disable this. Quote away. Style/StringLiterals: Enabled: false Style/TrivialAccessors: Enabled: false Style/VariableInterpolation: Enabled: false Style/WhenThen: Enabled: false Style/WhileUntilModifier: Enabled: false Style/WordArray: Enabled: false Style/FrozenStringLiteralComment: Enabled: false Style/NumericLiterals: Enabled: false # Avoid enforcing "positive?" Style/NumericPredicate: Enabled: false Style/HashEachMethods: Enabled: true Style/HashTransformKeys: Enabled: true Style/HashTransformValues: Enabled: true Rspec/MultipleMemoizedHelpers: Max: 15