.rubocop.yml

Summary

Maintainability
Test Coverage
require:
  - rubocop-rails
  - rubocop-rspec

AllCops:
  DisabledByDefault: false
  TargetRubyVersion: 2.6
  Exclude:
    - "db/**/*"
    - "config/**/*"
    - "script/**/*"
    - "tmp/**/*"
    - "bin/{rails,rake}"
    # - 'spec/**/*'

RSpec/EmptyExampleGroup:
  Enabled: false

RSpec/NestedGroups:
  Enabled: false

RSpec/AnyInstance:
  Enabled: false

RSpec/Focus:
  Enabled: true
  AutoCorrect: false

Layout/ArgumentAlignment:
  EnforcedStyle: with_first_argument

Layout/EmptyLineAfterGuardClause:
  Enabled: false

Layout/EmptyLinesAroundClassBody:
  Enabled: true

Layout/MultilineArrayBraceLayout:
  EnforcedStyle: new_line

Layout/MultilineAssignmentLayout:
  EnforcedStyle: same_line

Layout/MultilineHashBraceLayout:
  EnforcedStyle: new_line

Layout/SpaceBeforeBlockBraces:
  EnforcedStyle: no_space

Layout/SpaceInsideBlockBraces:
  Enabled: true
  EnforcedStyle: no_space
  SpaceBeforeBlockParameters: false

Layout/SpaceInsideHashLiteralBraces:
  Enabled: false

Lint/BooleanSymbol:
  Enabled: false

Lint/NumberConversion:
  Enabled: false

Metrics/AbcSize:
  Enabled: false

Metrics/BlockLength:
  Enabled: false

Metrics/ClassLength:
  Enabled: false

Metrics/CyclomaticComplexity:
  Enabled: false

Layout/LineLength:
  Enabled: false
  Max: 125

Metrics/MethodLength:
  Enabled: false

Metrics/ModuleLength:
  Enabled: false

Metrics/ParameterLists:
  Enabled: false

Metrics/PerceivedComplexity:
  Enabled: false

## Naming

Naming/AccessorMethodName:
  Enabled: false

Naming/HeredocDelimiterNaming:
  Enabled: false

Naming/MemoizedInstanceVariableName:
  Enabled: false

Naming/PredicateName:
  Enabled: false

# Security

Security/Eval:
  Enabled: true

Security/YAMLLoad:
  Enabled: true

# Style

Style/AccessModifierDeclarations:
  Enabled: false

Style/AndOr:
  Enabled: true
  EnforcedStyle: conditionals

Style/AsciiComments:
  Enabled: false

Style/ClassAndModuleChildren:
  Enabled: false

Style/Copyright:
  Enabled: false

Style/DateTime:
  Enabled: false

Style/Documentation:
  Enabled: false

Style/DocumentationMethod:
  Enabled: false

Style/DoubleCopDisableDirective:
  Enabled: false

Style/DoubleNegation:
  Enabled: false

Style/FormatString:
  Enabled: false

Style/FormatStringToken:
  Enabled: false

Style/FrozenStringLiteralComment:
  Enabled: false

Style/GuardClause:
  Enabled: false

Style/HashSyntax:
  Enabled: false

Style/IfInsideElse:
  Enabled: false

Style/InlineComment:
  Enabled: false

Style/MethodCallWithArgsParentheses:
  Enabled: false

Style/MethodCalledOnDoEndBlock:
  Enabled: false

Lint/MissingSuper:
  Enabled: false

Style/MissingElse:
  Enabled: false

Style/MissingRespondToMissing:
  Enabled: false

Style/MultilineBlockChain:
  Enabled: false

Style/MultipleComparison:
  Enabled: false

Style/NumericPredicate:
  Enabled: false

Style/OptionHash:
  Enabled: false

Style/Semicolon:
  Enabled: false

Style/Send:
  Enabled: false

Style/StringLiterals:
  Enabled: true
  EnforcedStyle: double_quotes

Style/StructInheritance:
  Enabled: false

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/RedundantDirGlobSort: # (new in 1.8)
  Enabled: true
Lint/ToEnumArguments: # (new in 1.1)
  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/HashExcept: # (new in 1.7)
  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/SwapValues: # (new in 1.1)
  Enabled: true

Gemspec/RequireMFA: # new in 1.23
  Enabled: true
Layout/LineEndStringConcatenationIndentation: # new in 1.18
  Enabled: true
Lint/AmbiguousOperatorPrecedence: # new in 1.21
  Enabled: true
Lint/AmbiguousRange: # new in 1.19
  Enabled: true
Lint/EmptyInPattern: # new in 1.16
  Enabled: true
Lint/IncompatibleIoSelectWithFiberScheduler: # new in 1.21
  Enabled: true
Lint/NumberedParameterAssignment: # new in 1.9
  Enabled: true
Lint/OrAssignmentToConstant: # new in 1.9
  Enabled: true
Lint/RequireRelativeSelfPath: # new in 1.22
  Enabled: true
Lint/SymbolConversion: # new in 1.9
  Enabled: true
Lint/TripleQuotes: # new in 1.9
  Enabled: true
Lint/UselessRuby2Keywords: # new in 1.23
  Enabled: true
Naming/BlockForwarding: # new in 1.24
  Enabled: true
Security/IoMethods: # new in 1.22
  Enabled: true
Style/FileRead: # new in 1.24
  Enabled: true
Style/FileWrite: # new in 1.24
  Enabled: true
Style/HashConversion: # new in 1.10
  Enabled: true
Style/IfWithBooleanLiteralBranches: # new in 1.9
  Enabled: true
Style/InPatternThen: # new in 1.16
  Enabled: true
Style/MapToHash: # new in 1.24
  Enabled: true
Style/MultilineInPatternThen: # new in 1.16
  Enabled: true
Style/NumberedParameters: # new in 1.22
  Enabled: true
Style/NumberedParametersLimit: # new in 1.22
  Enabled: true
Style/OpenStructUse: # new in 1.23
  Enabled: true
Style/QuotedSymbols: # new in 1.16
  Enabled: true
Style/RedundantSelfAssignmentBranch: # new in 1.19
  Enabled: true
Style/SelectByRegexp: # new in 1.22
  Enabled: true
Style/StringChars: # new in 1.12
  Enabled: true
Rails/ActiveRecordCallbacksOrder: # new in 2.7
  Enabled: true
Rails/AddColumnIndex: # new in 2.11
  Enabled: true
Rails/AfterCommitOverride: # new in 2.8
  Enabled: true
Rails/AttributeDefaultBlockValue: # new in 2.9
  Enabled: true
Rails/CompactBlank: # new in 2.13
  Enabled: true
Rails/DurationArithmetic: # new in 2.13
  Enabled: true
Rails/EagerEvaluationLogMessage: # new in 2.11
  Enabled: true
Rails/ExpandedDateRange: # new in 2.11
  Enabled: true
Rails/FindById: # new in 2.7
  Enabled: true
Rails/I18nLocaleAssignment: # new in 2.11
  Enabled: true
Rails/Inquiry: # new in 2.7
  Enabled: true
Rails/MailerName: # new in 2.7
  Enabled: true
Rails/MatchRoute: # new in 2.7
  Enabled: true
Rails/NegateInclude: # new in 2.7
  Enabled: true
Rails/Pluck: # new in 2.7
  Enabled: true
Rails/PluckInWhere: # new in 2.7
  Enabled: true
Rails/RedundantPresenceValidationOnBelongsTo: # new in 2.13
  Enabled: true
Rails/RedundantTravelBack: # new in 2.12
  Enabled: true
Rails/RenderInline: # new in 2.7
  Enabled: true
Rails/RenderPlainText: # new in 2.7
  Enabled: true
Rails/RootJoinChain: # new in 2.13
  Enabled: true
Rails/ShortI18n: # new in 2.7
  Enabled: true
Rails/SquishedSQLHeredocs: # new in 2.8
  Enabled: true
Rails/TimeZoneAssignment: # new in 2.10
  Enabled: true
Rails/UnusedIgnoredColumns: # new in 2.11
  Enabled: true
Rails/WhereEquals: # new in 2.9
  Enabled: true
Rails/WhereExists: # new in 2.7
  Enabled: true
Rails/WhereNot: # new in 2.8
  Enabled: true
RSpec/ExcessiveDocstringSpacing: # new in 2.5
  Enabled: true
RSpec/IdenticalEqualityAssertion: # new in 2.4
  Enabled: true
RSpec/SubjectDeclaration: # new in 2.5
  Enabled: true
RSpec/FactoryBot/SyntaxMethods: # new in 2.7
  Enabled: true
RSpec/Rails/AvoidSetupHook: # new in 2.4
  Enabled: true