.rubocop.yml
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