Even though we always follow these rules, this'll make it easier to run Rubocop with `--autocorrect` when we're applying multiline rules.
681 lines
10 KiB
YAML
681 lines
10 KiB
YAML
require:
|
|
- rubocop-performance
|
|
- rubocop-rails
|
|
- rubocop-rspec
|
|
|
|
AllCops:
|
|
DisplayCopNames: true
|
|
DisplayStyleGuide: true
|
|
Exclude:
|
|
- "db/schema.rb"
|
|
- "lib/ckeditor/backend/active_storage.rb"
|
|
DisabledByDefault: true
|
|
|
|
Bundler/DuplicatedGem:
|
|
Enabled: true
|
|
|
|
Bundler/OrderedGems:
|
|
Enabled: true
|
|
ConsiderPunctuation: true
|
|
|
|
Layout/ArgumentAlignment:
|
|
Enabled: true
|
|
|
|
Layout/ArrayAlignment:
|
|
Enabled: true
|
|
|
|
Layout/AssignmentIndentation:
|
|
Enabled: true
|
|
|
|
Layout/BeginEndAlignment:
|
|
Enabled: true
|
|
EnforcedStyleAlignWith: begin
|
|
|
|
Layout/BlockAlignment:
|
|
Enabled: true
|
|
|
|
Layout/BlockEndNewline:
|
|
Enabled: true
|
|
|
|
Layout/ClosingHeredocIndentation:
|
|
Enabled: true
|
|
|
|
Layout/ClosingParenthesisIndentation:
|
|
Enabled: true
|
|
|
|
Layout/DefEndAlignment:
|
|
Enabled: true
|
|
EnforcedStyleAlignWith: def
|
|
|
|
Layout/DotPosition:
|
|
Enabled: true
|
|
|
|
Layout/ElseAlignment:
|
|
Enabled: true
|
|
|
|
Layout/EmptyLineAfterGuardClause:
|
|
Enabled: true
|
|
|
|
Layout/EmptyLineBetweenDefs:
|
|
Enabled: true
|
|
|
|
Layout/EmptyLines:
|
|
Enabled: true
|
|
|
|
Layout/EmptyLinesAroundAccessModifier:
|
|
Enabled: true
|
|
|
|
Layout/EmptyLinesAroundBlockBody:
|
|
Enabled: true
|
|
|
|
Layout/EmptyLinesAroundClassBody:
|
|
Enabled: true
|
|
|
|
Layout/EmptyLinesAroundMethodBody:
|
|
Enabled: true
|
|
|
|
Layout/EmptyLinesAroundModuleBody:
|
|
Enabled: true
|
|
|
|
Layout/EndAlignment:
|
|
Enabled: true
|
|
|
|
Layout/EndOfLine:
|
|
EnforcedStyle: lf
|
|
|
|
Layout/ExtraSpacing:
|
|
Enabled: true
|
|
|
|
Layout/FirstArrayElementIndentation:
|
|
Enabled: true
|
|
EnforcedStyle: consistent
|
|
|
|
Layout/FirstHashElementIndentation:
|
|
Enabled: true
|
|
EnforcedStyle: consistent
|
|
|
|
Layout/HashAlignment:
|
|
Enabled: true
|
|
|
|
Layout/HeredocIndentation:
|
|
Enabled: true
|
|
|
|
Layout/IndentationConsistency:
|
|
EnforcedStyle: indented_internal_methods
|
|
|
|
Layout/IndentationStyle:
|
|
Enabled: true
|
|
|
|
Layout/IndentationWidth:
|
|
Enabled: true
|
|
|
|
Layout/LeadingEmptyLines:
|
|
Enabled: true
|
|
|
|
Layout/LineContinuationSpacing:
|
|
Enabled: true
|
|
|
|
Layout/LineEndStringConcatenationIndentation:
|
|
Enabled: true
|
|
|
|
Layout/LineLength:
|
|
Max: 110
|
|
Severity: refactor
|
|
|
|
Layout/MultilineArrayBraceLayout:
|
|
Enabled: true
|
|
|
|
Layout/MultilineBlockLayout:
|
|
Enabled: true
|
|
|
|
Layout/MultilineHashBraceLayout:
|
|
Enabled: true
|
|
|
|
Layout/MultilineHashKeyLineBreaks:
|
|
Enabled: true
|
|
|
|
Layout/MultilineMethodCallBraceLayout:
|
|
Enabled: true
|
|
|
|
Layout/MultilineMethodCallIndentation:
|
|
Enabled: true
|
|
|
|
Layout/MultilineOperationIndentation:
|
|
Enabled: true
|
|
|
|
Layout/ParameterAlignment:
|
|
Enabled: true
|
|
|
|
Layout/RescueEnsureAlignment:
|
|
Enabled: true
|
|
|
|
Layout/SpaceAfterColon:
|
|
Enabled: true
|
|
|
|
Layout/SpaceAfterComma:
|
|
Enabled: true
|
|
|
|
Layout/SpaceAfterMethodName:
|
|
Enabled: true
|
|
|
|
Layout/SpaceAfterNot:
|
|
Enabled: true
|
|
|
|
Layout/SpaceAfterSemicolon:
|
|
Enabled: true
|
|
|
|
Layout/SpaceAroundBlockParameters:
|
|
Enabled: true
|
|
|
|
Layout/SpaceAroundEqualsInParameterDefault:
|
|
Enabled: true
|
|
|
|
Layout/SpaceAroundMethodCallOperator:
|
|
Enabled: true
|
|
|
|
Layout/SpaceAroundOperators:
|
|
Enabled: true
|
|
|
|
Layout/SpaceBeforeBlockBraces:
|
|
Enabled: true
|
|
|
|
Layout/SpaceBeforeComma:
|
|
Enabled: true
|
|
|
|
Layout/SpaceBeforeComment:
|
|
Enabled: true
|
|
|
|
Layout/SpaceBeforeFirstArg:
|
|
Enabled: true
|
|
|
|
Layout/SpaceBeforeSemicolon:
|
|
Enabled: true
|
|
|
|
Layout/SpaceInLambdaLiteral:
|
|
Enabled: true
|
|
|
|
Layout/SpaceInsideArrayLiteralBrackets:
|
|
Enabled: true
|
|
|
|
Layout/SpaceInsideArrayPercentLiteral:
|
|
Enabled: true
|
|
|
|
Layout/SpaceInsideBlockBraces:
|
|
Enabled: true
|
|
|
|
Layout/SpaceInsideHashLiteralBraces:
|
|
Enabled: true
|
|
EnforcedStyle: compact
|
|
|
|
Layout/SpaceInsideParens:
|
|
Enabled: true
|
|
|
|
Layout/SpaceInsidePercentLiteralDelimiters:
|
|
Enabled: true
|
|
|
|
Layout/SpaceInsideRangeLiteral:
|
|
Enabled: true
|
|
|
|
Layout/SpaceInsideReferenceBrackets:
|
|
Enabled: true
|
|
|
|
Layout/SpaceInsideStringInterpolation:
|
|
Enabled: true
|
|
|
|
Layout/TrailingEmptyLines:
|
|
Enabled: true
|
|
|
|
Layout/TrailingWhitespace:
|
|
Enabled: true
|
|
|
|
Lint/AmbiguousRegexpLiteral:
|
|
Enabled: true
|
|
|
|
Lint/BooleanSymbol:
|
|
Enabled: true
|
|
|
|
Lint/ConstantDefinitionInBlock:
|
|
Enabled: true
|
|
|
|
Lint/DeprecatedClassMethods:
|
|
Enabled: true
|
|
|
|
Lint/DuplicateBranch:
|
|
Enabled: true
|
|
|
|
Lint/DuplicateMethods:
|
|
Enabled: true
|
|
|
|
Lint/EmptyBlock:
|
|
Enabled: true
|
|
|
|
Lint/EmptyFile:
|
|
Enabled: true
|
|
|
|
Lint/LiteralAsCondition:
|
|
Enabled: true
|
|
|
|
Lint/NonAtomicFileOperation:
|
|
Enabled: true
|
|
|
|
Lint/ParenthesesAsGroupedExpression:
|
|
Enabled: true
|
|
|
|
Lint/RedundantStringCoercion:
|
|
Enabled: true
|
|
|
|
Lint/SafeNavigationChain:
|
|
Enabled: true
|
|
|
|
Lint/ShadowingOuterLocalVariable:
|
|
Enabled: true
|
|
|
|
Lint/SymbolConversion:
|
|
Enabled: true
|
|
Exclude:
|
|
- "app/models/setting.rb"
|
|
- "db/dev_seeds/settings.rb"
|
|
|
|
Lint/UselessAssignment:
|
|
Enabled: true
|
|
|
|
Lint/Void:
|
|
Enabled: true
|
|
|
|
Naming/VariableName:
|
|
Enabled: true
|
|
|
|
Performance/BlockGivenWithExplicitBlock:
|
|
Enabled: true
|
|
|
|
Performance/CompareWithBlock:
|
|
Enabled: true
|
|
|
|
Performance/DoubleStartEndWith:
|
|
Enabled: true
|
|
|
|
Performance/EndWith:
|
|
Enabled: true
|
|
|
|
Performance/StartWith:
|
|
Enabled: true
|
|
|
|
Performance/StringIdentifierArgument:
|
|
Enabled: true
|
|
|
|
Performance/Sum:
|
|
Enabled: true
|
|
|
|
Rails/ActiveRecordCallbacksOrder:
|
|
Enabled: true
|
|
|
|
Rails/AddColumnIndex:
|
|
Enabled: true
|
|
|
|
Rails/CreateTableWithTimestamps:
|
|
Enabled: true
|
|
Exclude:
|
|
- "db/migrate/201[5-8]*"
|
|
- "db/migrate/*install_audited.rb"
|
|
|
|
Rails/Date:
|
|
Enabled: true
|
|
|
|
Rails/DurationArithmetic:
|
|
Enabled: true
|
|
|
|
Rails/DynamicFindBy:
|
|
Enabled: true
|
|
Whitelist:
|
|
- find_by_domain
|
|
- find_by_slug_or_id
|
|
- find_by_slug_or_id!
|
|
- find_by_manager_login
|
|
|
|
Rails/EnumUniqueness:
|
|
Enabled: true
|
|
|
|
Rails/EnvironmentComparison:
|
|
Enabled: true
|
|
|
|
Rails/FindBy:
|
|
Enabled: true
|
|
Include:
|
|
- "**/*.rb"
|
|
|
|
Rails/FindEach:
|
|
Enabled: true
|
|
|
|
Rails/HasAndBelongsToMany:
|
|
Enabled: true
|
|
|
|
Rails/HasManyOrHasOneDependent:
|
|
Enabled: true
|
|
Severity: refactor
|
|
|
|
Rails/HttpStatus:
|
|
Enabled: true
|
|
|
|
Rails/I18nLocaleAssignment:
|
|
Enabled: true
|
|
Include:
|
|
- "**/*.rb"
|
|
|
|
Rails/InverseOf:
|
|
Enabled: true
|
|
Exclude:
|
|
- "app/models/related_content.rb"
|
|
|
|
Rails/NotNullColumn:
|
|
Enabled: true
|
|
Exclude:
|
|
- "db/migrate/201[5-7]*"
|
|
|
|
Rails/OutputSafety:
|
|
Enabled: true
|
|
Severity: warning
|
|
Exclude:
|
|
- app/helpers/text_with_links_helper.rb
|
|
|
|
Rails/Pick:
|
|
Enabled: true
|
|
|
|
Rails/PluckId:
|
|
Enabled: true
|
|
|
|
Rails/PluralizationGrammar:
|
|
Enabled: true
|
|
|
|
Rails/Presence:
|
|
Enabled: true
|
|
|
|
Rails/RedundantTravelBack:
|
|
Enabled: true
|
|
|
|
Rails/RelativeDateConstant:
|
|
Enabled: true
|
|
|
|
Rails/RequestReferer:
|
|
Enabled: true
|
|
|
|
Rails/ReversibleMigration:
|
|
Enabled: true
|
|
|
|
Rails/SafeNavigation:
|
|
Enabled: true
|
|
ConvertTry: true
|
|
|
|
Rails/SaveBang:
|
|
Enabled: true
|
|
Severity: refactor
|
|
|
|
Rails/SkipsModelValidations:
|
|
Enabled: true
|
|
ForbiddenMethods:
|
|
- update_attribute
|
|
Exclude:
|
|
- app/models/tenant.rb
|
|
- lib/acts_as_paranoid_aliases.rb
|
|
|
|
Rails/TimeZone:
|
|
Enabled: true
|
|
|
|
Rails/UniqBeforePluck:
|
|
Enabled: true
|
|
|
|
Rails/UniqueValidationWithoutIndex:
|
|
Enabled: true
|
|
Severity: refactor
|
|
|
|
Rails/UnknownEnv:
|
|
Enabled: true
|
|
Environments:
|
|
- development
|
|
- test
|
|
- production
|
|
- preproduction
|
|
- staging
|
|
|
|
Rails/Validation:
|
|
Enabled: true
|
|
|
|
Rails/WhereEquals:
|
|
Enabled: true
|
|
|
|
Rails/WhereNot:
|
|
Enabled: true
|
|
|
|
RSpec/AroundBlock:
|
|
Enabled: true
|
|
|
|
RSpec/BeforeAfterAll:
|
|
Enabled: true
|
|
|
|
RSpec/Capybara/CurrentPathExpectation:
|
|
Enabled: true
|
|
|
|
RSpec/Capybara/FeatureMethods:
|
|
Enabled: true
|
|
EnabledMethods:
|
|
- scenario
|
|
- xscenario
|
|
|
|
RSpec/Capybara/VisibilityMatcher:
|
|
Enabled: true
|
|
|
|
RSpec/ContextMethod:
|
|
Enabled: true
|
|
|
|
RSpec/DescribedClass:
|
|
Enabled: true
|
|
EnforcedStyle: explicit
|
|
|
|
RSpec/EmptyExampleGroup:
|
|
Enabled: true
|
|
Exclude:
|
|
- spec/factories/**/*
|
|
|
|
RSpec/EmptyHook:
|
|
Enabled: true
|
|
|
|
RSpec/EmptyLineAfterExample:
|
|
Enabled: true
|
|
|
|
RSpec/EmptyLineAfterExampleGroup:
|
|
Enabled: true
|
|
Exclude:
|
|
- spec/factories/**/*
|
|
|
|
RSpec/ExampleWording:
|
|
Enabled: true
|
|
|
|
RSpec/FactoryBot/FactoryClassName:
|
|
Enabled: true
|
|
|
|
RSpec/FilePath:
|
|
Enabled: true
|
|
|
|
RSpec/Focus:
|
|
Enabled: true
|
|
|
|
RSpec/HookArgument:
|
|
Enabled: true
|
|
|
|
RSpec/InstanceVariable:
|
|
Enabled: true
|
|
Exclude:
|
|
- spec/controllers/concerns/has_orders_spec.rb
|
|
|
|
RSpec/LetBeforeExamples:
|
|
Enabled: true
|
|
|
|
RSpec/LetSetup:
|
|
Enabled: true
|
|
|
|
RSpec/NotToNot:
|
|
Enabled: true
|
|
|
|
RSpec/OverwritingSetup:
|
|
Enabled: true
|
|
|
|
RSpec/RepeatedExample:
|
|
Enabled: true
|
|
|
|
RSpec/RepeatedExampleGroupBody:
|
|
Enabled: true
|
|
|
|
RSpec/RepeatedExampleGroupDescription:
|
|
Enabled: true
|
|
|
|
RSpec/ScatteredLet:
|
|
Enabled: true
|
|
|
|
RSpec/ScatteredSetup:
|
|
Enabled: true
|
|
|
|
RSpec/VoidExpect:
|
|
Enabled: true
|
|
|
|
Security/Eval:
|
|
Enabled: true
|
|
|
|
Security/JSONLoad:
|
|
Enabled: true
|
|
|
|
Security/Open:
|
|
Enabled: true
|
|
|
|
Security/YAMLLoad:
|
|
Enabled: true
|
|
|
|
Style/AccessorGrouping:
|
|
Enabled: true
|
|
|
|
Style/AndOr:
|
|
Enabled: true
|
|
|
|
Style/ArrayCoercion:
|
|
Enabled: true
|
|
|
|
Style/BlockDelimiters:
|
|
Enabled: true
|
|
|
|
Style/ClassCheck:
|
|
Enabled: true
|
|
|
|
Style/ClassVars:
|
|
Enabled: true
|
|
|
|
Style/CollectionMethods:
|
|
Enabled: true
|
|
|
|
Style/FileRead:
|
|
Enabled: true
|
|
|
|
Style/FileWrite:
|
|
Enabled: true
|
|
|
|
Style/HashConversion:
|
|
Enabled: true
|
|
|
|
Style/HashExcept:
|
|
Enabled: true
|
|
|
|
Style/HashSyntax:
|
|
Enabled: true
|
|
|
|
Style/HashTransformKeys:
|
|
Enabled: true
|
|
|
|
Style/HashTransformValues:
|
|
Enabled: true
|
|
|
|
Style/IdenticalConditionalBranches:
|
|
Enabled: true
|
|
|
|
Style/IfWithBooleanLiteralBranches:
|
|
Enabled: true
|
|
|
|
Style/LineEndConcatenation:
|
|
Enabled: true
|
|
|
|
Style/MapToHash:
|
|
Enabled: true
|
|
|
|
Style/MethodDefParentheses:
|
|
Enabled: true
|
|
|
|
Style/MutableConstant:
|
|
Enabled: true
|
|
|
|
Style/NegatedIfElseCondition:
|
|
Enabled: true
|
|
|
|
Style/Not:
|
|
Enabled: true
|
|
|
|
Style/OrAssignment:
|
|
Enabled: true
|
|
|
|
Style/PercentLiteralDelimiters:
|
|
Enabled: true
|
|
|
|
Style/Proc:
|
|
Enabled: true
|
|
|
|
Style/RaiseArgs:
|
|
Enabled: true
|
|
|
|
Style/RedundantArgument:
|
|
Enabled: true
|
|
|
|
Style/RedundantCondition:
|
|
Enabled: true
|
|
|
|
Style/RedundantFileExtensionInRequire:
|
|
Enabled: true
|
|
|
|
Style/RedundantFreeze:
|
|
Enabled: true
|
|
|
|
Style/RedundantInterpolation:
|
|
Enabled: true
|
|
|
|
Style/RedundantParentheses:
|
|
Enabled: true
|
|
|
|
Style/RedundantReturn:
|
|
Enabled: true
|
|
|
|
Style/RedundantSelf:
|
|
Enabled: true
|
|
|
|
Style/SafeNavigation:
|
|
Enabled: true
|
|
|
|
Style/SingleLineMethods:
|
|
Enabled: true
|
|
|
|
Style/SoleNestedConditional:
|
|
Enabled: true
|
|
|
|
Style/StringChars:
|
|
Enabled: true
|
|
|
|
Style/StringLiterals:
|
|
EnforcedStyle: double_quotes
|
|
|
|
Style/StringLiteralsInInterpolation:
|
|
EnforcedStyle: double_quotes
|
|
|
|
Style/SymbolProc:
|
|
Enabled: true
|
|
AllowedMethods:
|
|
- respond_to
|
|
|
|
Style/TrailingCommaInArrayLiteral:
|
|
Enabled: true
|
|
|
|
Style/TrailingCommaInHashLiteral:
|
|
Enabled: true
|