require:
  - rubocop-performance
  - rubocop-rails
  - rubocop-rspec
  - ./lib/cops/add_concurrent_index.rb
  - ./lib/cops/application_name.rb
  - ./lib/cops/unscoped.rb

inherit_mode:
  merge:
    - Include

AllCops:
  TargetRubyVersion: 3.3
  DisabledByDefault: true
  SuggestExtensions: false
  NewCops: enable
  Include:
    - "app/**/*.prawn"
  Exclude:
    - "db/schema.rb"
    - "db/migrate/20190730153555_recreate_structure.rb"
    - "bin/*"
    - "node_modules/**/*"
    - "vendor/**/*"
    - "storage/**/*"
    - "tmp/**/*"

DS/AddConcurrentIndex:
  Enabled: true

DS/ApplicationName:
  Enabled: true
  Exclude:
    - './config/initializers/01_application_name.rb'
    - './lib/cops/application_name.rb'
    - './lib/linters/application_name_linter.rb'
    - "./spec/**/*"

DS/Unscoped:
  Enabled: true

Bundler/DuplicatedGem:
  Enabled: true

Bundler/InsecureProtocolSource:
  Enabled: true

Bundler/OrderedGems:
  Enabled: true

Gemspec/DuplicatedAssignment:
  Enabled: true

Gemspec/OrderedDependencies:
  Enabled: true

Gemspec/RequiredRubyVersion:
  Enabled: true

Layout/AccessModifierIndentation:
  Enabled: true

Layout/ArrayAlignment:
  Enabled: true

Layout/HashAlignment:
  Enabled: false

Layout/ParameterAlignment:
  Enabled: true
  EnforcedStyle: with_fixed_indentation

Layout/BlockAlignment:
  Enabled: false

Layout/BlockEndNewline:
  Enabled: true

Layout/CaseIndentation:
  Enabled: true
  EnforcedStyle: end

Layout/ClassStructure:
  Enabled: false

Layout/ClosingParenthesisIndentation:
  Enabled: true

Layout/CommentIndentation:
  Enabled: true

Layout/ConditionPosition:
  Enabled: true

Layout/DefEndAlignment:
  Enabled: false

Layout/DotPosition:
  Enabled: true

Layout/ElseAlignment:
  Enabled: true

Layout/EmptyComment:
  Enabled: true

Layout/EmptyLineAfterMagicComment:
  Enabled: true

Layout/EmptyLineBetweenDefs:
  Enabled: true

Layout/EmptyLines:
  Enabled: true

Layout/EmptyLineAfterGuardClause:
  Enabled: false

# FIXME: private should not be a column name on TypeDeChamp
Layout/EmptyLinesAroundAccessModifier:
  Enabled: true
  EnforcedStyle: around
  Exclude:
    - "spec/factories/type_de_champ.rb"

Layout/EmptyLinesAroundArguments:
  Enabled: true

Layout/EmptyLinesAroundBeginBody:
  Enabled: true

Layout/EmptyLinesAroundBlockBody:
  Enabled: true

Layout/EmptyLinesAroundClassBody:
  Enabled: true

Layout/EmptyLinesAroundExceptionHandlingKeywords:
  Enabled: false

Layout/EmptyLinesAroundMethodBody:
  Enabled: true

Layout/EmptyLinesAroundModuleBody:
  Enabled: true

Layout/EndAlignment:
  Enabled: true
  EnforcedStyleAlignWith: variable

Layout/EndOfLine:
  Enabled: true
  EnforcedStyle: lf

Layout/ExtraSpacing:
  Enabled: true
  Exclude:
    - "Guardfile"

Layout/FirstArrayElementLineBreak:
  Enabled: true

Layout/FirstHashElementLineBreak:
  Enabled: true

Layout/FirstMethodArgumentLineBreak:
  Enabled: false

Layout/FirstMethodParameterLineBreak:
  Enabled: false

Layout/FirstParameterIndentation:
  Enabled: true

Layout/FirstArrayElementIndentation:
  Enabled: true
  EnforcedStyle: consistent

Layout/AssignmentIndentation:
  Enabled: true

Layout/FirstHashElementIndentation:
  Enabled: true
  EnforcedStyle: consistent

Layout/HeredocIndentation:
  Enabled: true

Layout/IndentationConsistency:
  Enabled: true
  EnforcedStyle: normal

Layout/IndentationWidth:
  Enabled: true

Layout/InitialIndentation:
  Enabled: true

Layout/LeadingCommentSpace:
  Enabled: true

Layout/MultilineArrayBraceLayout:
  Enabled: true
  EnforcedStyle: new_line

Layout/MultilineAssignmentLayout:
  Enabled: false

Layout/MultilineBlockLayout:
  Enabled: true

Layout/MultilineHashBraceLayout:
  Enabled: true
  EnforcedStyle: new_line

Layout/MultilineMethodCallBraceLayout:
  Enabled: true
  EnforcedStyle: symmetrical

Layout/MultilineMethodCallIndentation:
  Enabled: true
  EnforcedStyle: indented

Layout/MultilineMethodDefinitionBraceLayout:
  Enabled: true

Layout/MultilineOperationIndentation:
  Enabled: false

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/SpaceAroundKeyword:
  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
  EnforcedStyle: require_space

Layout/SpaceInsideArrayPercentLiteral:
  Enabled: true

Layout/SpaceInsideBlockBraces:
  Enabled: true

Layout/SpaceInsideHashLiteralBraces:
  Enabled: true

Layout/SpaceInsideArrayLiteralBrackets:
  Enabled: true
  EnforcedStyle: no_space

Layout/SpaceInsideParens:
  Enabled: true

Layout/SpaceInsidePercentLiteralDelimiters:
  Enabled: true

Layout/SpaceInsideRangeLiteral:
  Enabled: true

Layout/SpaceInsideReferenceBrackets:
  Enabled: true

Layout/SpaceInsideStringInterpolation:
  Enabled: true

Layout/IndentationStyle:
  Enabled: true

Layout/TrailingEmptyLines:
  Enabled: true

Layout/TrailingWhitespace:
  Enabled: true

Lint/AmbiguousBlockAssociation:
  Enabled: false

Lint/AmbiguousOperator:
  Enabled: true

Lint/AmbiguousRegexpLiteral:
  Enabled: true

Lint/AssignmentInCondition:
  Enabled: true

Lint/BigDecimalNew:
  Enabled: true

Lint/BooleanSymbol:
  Enabled: true

Lint/CircularArgumentReference:
  Enabled: true

Lint/Debugger:
  Enabled: true

Lint/DeprecatedClassMethods:
  Enabled: true

Lint/DuplicateCaseCondition:
  Enabled: true

Lint/DuplicateMethods:
  Enabled: true

Lint/DuplicateHashKey:
  Enabled: true

Lint/EachWithObjectArgument:
  Enabled: true

Lint/ElseLayout:
  Enabled: true

Lint/EmptyEnsure:
  Enabled: true

Lint/EmptyExpression:
  Enabled: true

Lint/EmptyInterpolation:
  Enabled: true

Lint/EmptyWhen:
  Enabled: true

Lint/EnsureReturn:
  Enabled: false

Lint/FloatOutOfRange:
  Enabled: true

Lint/FormatParameterMismatch:
  Enabled: true

Lint/SuppressedException:
  Enabled: false

Lint/ImplicitStringConcatenation:
  Enabled: true

Lint/IneffectiveAccessModifier:
  Enabled: false

Lint/InheritException:
  Enabled: true

Lint/InterpolationCheck:
  Enabled: true

Lint/LiteralAsCondition:
  Enabled: true

Lint/LiteralInInterpolation:
  Enabled: true

Lint/Loop:
  Enabled: true

Lint/MissingCopEnableDirective:
  Enabled: true

Lint/MultipleComparison:
  Enabled: true

Lint/NestedMethodDefinition:
  Enabled: false

Lint/NestedPercentLiteral:
  Enabled: true

Lint/NextWithoutAccumulator:
  Enabled: true

Lint/NonLocalExitFromIterator:
  Enabled: false

Lint/NumberConversion:
  Enabled: false

Lint/OrderedMagicComments:
  Enabled: true

Lint/ParenthesesAsGroupedExpression:
  Enabled: true
  Exclude:
    - "spec/**/*"

Lint/PercentStringArray:
  Enabled: false

Lint/PercentSymbolArray:
  Enabled: false

Lint/RandOne:
  Enabled: false

Lint/RedundantWithIndex:
  Enabled: true

Lint/RedundantWithObject:
  Enabled: true

Lint/RegexpAsCondition:
  Enabled: true

Lint/RequireParentheses:
  Enabled: false

Lint/RescueException:
  Enabled: true

Lint/RescueType:
  Enabled: true

Lint/ReturnInVoidContext:
  Enabled: false

Lint/SafeNavigationChain:
  Enabled: true

Lint/ScriptPermission:
  Enabled: false

Lint/ShadowedArgument:
  Enabled: true

Lint/ShadowedException:
  Enabled: true

Lint/ShadowingOuterLocalVariable:
  Enabled: false

Lint/RedundantStringCoercion:
  Enabled: true

Lint/Syntax:
  Enabled: true

Lint/UnderscorePrefixedVariableName:
  Enabled: true

Lint/UnifiedInteger:
  Enabled: true

Lint/RedundantCopDisableDirective:
  Enabled: true

Lint/RedundantCopEnableDirective:
  Enabled: true

Lint/RedundantRequireStatement:
  Enabled: true

Lint/RedundantSplatExpansion:
  Enabled: false

Lint/UnreachableCode:
  Enabled: true

Lint/UnusedBlockArgument:
  Enabled: true

Lint/UnusedMethodArgument:
  Enabled: false

Lint/UriEscapeUnescape:
  Enabled: false

Lint/UriRegexp:
  Enabled: false

Lint/UselessAccessModifier:
  Enabled: false

Lint/UselessAssignment:
  Enabled: true
  Exclude:
    - "spec/**/*"

Lint/BinaryOperatorWithIdenticalOperands:
  Enabled: true

Lint/UselessSetterCall:
  Enabled: true

Lint/Void:
  Enabled: true

Metrics/AbcSize:
  Enabled: false

Metrics/BlockLength:
  Enabled: false

Metrics/BlockNesting:
  Enabled: false

Metrics/ClassLength:
  Enabled: false

Metrics/CyclomaticComplexity:
  Enabled: false

Layout/LineLength:
  Enabled: false

Metrics/MethodLength:
  Enabled: false

Metrics/ModuleLength:
  Enabled: false

Metrics/ParameterLists:
  Enabled: false

Metrics/PerceivedComplexity:
  Enabled: false

Naming/AccessorMethodName:
  Enabled: false

Naming/AsciiIdentifiers:
  Enabled: false

Naming/BinaryOperatorParameterName:
  Enabled: false

Naming/ClassAndModuleCamelCase:
  Enabled: false

Naming/ConstantName:
  Enabled: false

Naming/FileName:
  Enabled: false

Naming/HeredocDelimiterCase:
  Enabled: true

Naming/HeredocDelimiterNaming:
  Enabled: false

Naming/MemoizedInstanceVariableName:
  Enabled: false

Naming/MethodName:
  Enabled: false

Naming/PredicateName:
  Enabled: false

Naming/BlockParameterName:
  Enabled: true

Naming/MethodParameterName:
  Enabled: false

Naming/VariableName:
  Enabled: false

Naming/VariableNumber:
  Enabled: false

Performance/Caller:
  Enabled: true

Performance/CaseWhenSplat:
  Enabled: true

Performance/Casecmp:
  Enabled: true

Performance/CompareWithBlock:
  Enabled: true

Performance/Count:
  Enabled: true
  Exclude:
    - "app/services/administrateur_usage_statistics_service.rb"

Performance/Detect:
  Enabled: true

Performance/DoubleStartEndWith:
  Enabled: true

Performance/EndWith:
  Enabled: true

Performance/FixedSize:
  Enabled: true

Performance/FlatMap:
  Enabled: true

Performance/OpenStruct:
  Enabled: true

Performance/RangeInclude:
  Enabled: true

Performance/RedundantBlockCall:
  Enabled: true

Performance/RedundantMatch:
  Enabled: true

Performance/RedundantMerge:
  Enabled: true

Style/HashTransformValues:
    Enabled: true

Style/RedundantSortBy:
  Enabled: true

Performance/RegexpMatch:
  Enabled: true

Performance/ReverseEach:
  Enabled: true

Style/Sample:
  Enabled: true

Performance/Size:
  Enabled: true

Performance/StartWith:
  Enabled: true

Performance/StringReplacement:
  Enabled: true

Performance/TimesMap:
  Enabled: true

Performance/UnfreezeString:
  Enabled: true

Performance/UriDefaultParser:
  Enabled: true

Rails:
  Enabled: true

Rails/ActionControllerFlashBeforeRender:
  Enabled: true

Rails/ActionControllerTestCase:
  Enabled: true

Rails/ActionFilter:
  Enabled: true

Rails/ActionOrder:
  Enabled: false

Rails/ActiveRecordAliases:
  Enabled: true

Rails/ActiveRecordCallbacksOrder:
  Enabled: false

Rails/ActiveSupportAliases:
  Enabled: true

Rails/ActiveSupportOnLoad:
  Enabled: true

Rails/AddColumnIndex:
  Enabled: true

Rails/AfterCommitOverride:
  Enabled: true

Rails/ApplicationController:
  Enabled: false

Rails/ApplicationJob:
  Enabled: true

Rails/ApplicationRecord:
  Enabled: true

Rails/AttributeDefaultBlockValue:
  Enabled: true

Rails/Blank:
  Enabled: true

Rails/BulkChangeTable:
  Enabled: false

Rails/CompactBlank:
  Enabled: true

Rails/CreateTableWithTimestamps:
  Enabled: true
  Exclude:
    - db/migrate/2015*.rb
    - db/migrate/2016*.rb
    - db/migrate/2017*.rb
    - db/migrate/2018*.rb
    - db/migrate/20200630140356_create_traitements.rb
    - db/migrate/20230630091637_create_dossier_assignments.rb

Rails/Date:
  Enabled: false

Rails/Delegate:
  Enabled: false

Rails/DelegateAllowBlank:
  Enabled: true

Rails/DeprecatedActiveModelErrorsMethods:
  Enabled: false # re-enable in rails 7

Rails/DotSeparatedKeys:
  Enabled: true

Rails/DuplicateAssociation:
  Enabled: true

Rails/DuplicateScope:
  Enabled: true

Rails/DurationArithmetic:
  Enabled: true

Rails/DynamicFindBy:
  Enabled: true
  Exclude:
    - spec/system/**/*.rb

Rails/EagerEvaluationLogMessage:
  Enabled: true

Rails/EnumUniqueness:
  Enabled: true

Rails/EnvironmentComparison:
  Enabled: false

Rails/Exit:
  Enabled: true

Rails/ExpandedDateRange:
  Enabled: true

Rails/FilePath:
  Enabled: false

Rails/FindBy:
  Enabled: true

Rails/FindById:
  Enabled: true

Rails/FindEach:
  Enabled: true
  Exclude:
    - spec/**/*

Rails/FreezeTime:
  Enabled: true

Rails/HasAndBelongsToMany:
  Enabled: false

Rails/HasManyOrHasOneDependent:
  Enabled: false

Rails/HttpPositionalArguments:
  Enabled: true

Rails/HttpStatus:
  Enabled: false

Rails/I18nLazyLookup:
  Enabled: true

Rails/I18nLocaleAssignment:
  Enabled: true

Rails/I18nLocaleTexts:
  Enabled: false

Rails/IgnoredColumnsAssignment:
  Enabled: true

Rails/Inquiry:
  Enabled: true

Rails/InverseOf:
  Enabled: true

Rails/LexicallyScopedActionFilter:
  Enabled: false

Rails/MailerName:
  Enabled: true

Rails/MatchRoute:
  Enabled: true

Rails/MigrationClassName:
  Enabled: true

Rails/NegateInclude:
  Enabled: false

Rails/NotNullColumn:
  Enabled: false

Rails/Output:
  Enabled: false

Rails/OutputSafety:
  Enabled: true

Rails/Pluck:
  Enabled: false

Rails/PluckInWhere:
  Enabled: true

Rails/PluralizationGrammar:
  Enabled: true

Rails/Presence:
  Enabled: true

Rails/Present:
  Enabled: true

Rails/RakeEnvironment:
  Enabled: false

Rails/ReadWriteAttribute:
  Enabled: false

Rails/RedundantAllowNil:
  Enabled: false

Rails/RedundantPresenceValidationOnBelongsTo:
  Enabled: true

Rails/RedundantReceiverInWithOptions:
  Enabled: true

Rails/RedundantTravelBack:
  Enabled: true

Rails/RelativeDateConstant:
  Enabled: true

Rails/RenderInline:
  Enabled: true

Rails/RenderPlainText:
  Enabled: true

Rails/RequestReferer:
  Enabled: true

Rails/ResponseParsedBody:
  Enabled: true

Rails/ReversibleMigration:
  Enabled: false

Rails/RootJoinChain:
  Enabled: true

Rails/RootPathnameMethods:
  Enabled: true

Rails/RootPublicPath:
  Enabled: true

Rails/SaveBang:
  Enabled: false

Rails/ScopeArgs:
  Enabled: true

Rails/ShortI18n:
  Enabled: true

Rails/SkipsModelValidations:
  Enabled: false

Rails/SquishedSQLHeredocs:
  Enabled: true

Rails/StripHeredoc:
  Enabled: true

Rails/ThreeStateBooleanColumn:
  Enabled: true
  Exclude:
    - db/migrate/2019*
    - db/migrate/2020*
    - db/migrate/2021*
    - db/migrate/2022*
    - db/migrate/202301*
    - db/migrate/202303*

Rails/TimeZone:
  EnforcedStyle: strict

Rails/TimeZoneAssignment:
  Enabled: true

Rails/ToFormattedS:
  Enabled: true

Rails/ToSWithArgument:
  Enabled: true

Rails/TopLevelHashWithIndifferentAccess:
  Enabled: true

Rails/TransactionExitStatement:
  Enabled: true

Rails/UniqBeforePluck:
  Enabled: true

Rails/UniqueValidationWithoutIndex:
  Enabled: true

Rails/UnknownEnv:
  Enabled: false

Rails/UnusedIgnoredColumns:
  Enabled: true

Rails/Validation:
  Enabled: true

Rails/WhereEquals:
  Enabled: true

Rails/WhereExists:
  Enabled: true

Rails/WhereMissing:
  Enabled: true

Rails/WhereNot:
  Enabled: true

Rails/WhereNotWithMultipleConditions:
  Enabled: true

RSpec/Focus:
  Enabled: true

Security/Eval:
  Enabled: true

Security/JSONLoad:
  Enabled: true

Security/MarshalLoad:
  Enabled: true

Security/Open:
  Enabled: true

Security/YAMLLoad:
  Enabled: true

Style/AccessModifierDeclarations:
  Enabled: false

Style/Alias:
  Enabled: false

Style/AndOr:
  Enabled: true

Style/ArrayJoin:
  Enabled: true

Style/AsciiComments:
  Enabled: false

Style/Attr:
  Enabled: true

Style/AutoResourceCleanup:
  Enabled: true

Style/BarePercentLiterals:
  Enabled: false

Style/BeginBlock:
  Enabled: true

Style/BlockComments:
  Enabled: true

Style/BlockDelimiters:
  Enabled: true
  Exclude:
    - "spec/**/*"

Style/CaseEquality:
  Enabled: true

Style/CharacterLiteral:
  Enabled: false

Style/ClassAndModuleChildren:
  Enabled: false

Style/ClassCheck:
  Enabled: true

Style/ClassMethods:
  Enabled: true

Style/ClassVars:
  Enabled: false

Style/CollectionMethods:
  PreferredMethods:
    collect: map
    collect!: map!
    inject: reduce
    detect: find
    select: filter
    find_all: filter
  Enabled: true

Style/ColonMethodCall:
  Enabled: true

Style/ColonMethodDefinition:
  Enabled: true

Style/CommandLiteral:
  Enabled: false

Style/CommentAnnotation:
  Enabled: false

Style/CommentedKeyword:
  Enabled: false

Style/ConditionalAssignment:
  Enabled: false

Style/Copyright:
  Enabled: false

Style/DateTime:
  Enabled: false

Style/DefWithParentheses:
  Enabled: true

Style/Dir:
  Enabled: true

Style/Documentation:
  Enabled: false

Style/DocumentationMethod:
  Enabled: false

Style/DoubleNegation:
  Enabled: false

Style/EachForSimpleLoop:
  Enabled: true

Style/EachWithObject:
  Enabled: false

Style/EmptyBlockParameter:
  Enabled: true

Style/EmptyCaseCondition:
  Enabled: false

Style/EmptyElse:
  Enabled: false

Style/EmptyLambdaParameter:
  Enabled: true

Style/EmptyLiteral:
  Enabled: true

Style/EmptyMethod:
  Enabled: false

Style/Encoding:
  Enabled: true

Style/EndBlock:
  Enabled: true

Style/EvalWithLocation:
  Enabled: false

Style/EvenOdd:
  Enabled: true

Style/ExpandPathArguments:
  Enabled: true

Style/FileRead:
  Enabled: true

Style/FileWrite:
  Enabled: true

Style/For:
  Enabled: true

Style/FormatString:
  Enabled: true

Style/FormatStringToken:
  Enabled: false
  EnforcedStyle: template

Style/FrozenStringLiteralComment:
  Enabled: true

Style/GlobalVars:
  Enabled: true

Style/GuardClause:
  Enabled: false

Style/HashSyntax:
  Enabled: false

Style/IdenticalConditionalBranches:
  Enabled: false

Style/IfInsideElse:
  Enabled: false

Style/IfUnlessModifier:
  Enabled: false

Style/IfUnlessModifierOfIfUnless:
  Enabled: false

Style/IfWithSemicolon:
  Enabled: false

Style/ImplicitRuntimeError:
  Enabled: false

Style/InfiniteLoop:
  Enabled: false

Style/InlineComment:
  Enabled: false

Style/InverseMethods:
  Enabled: false

Style/Lambda:
  Enabled: false

Style/LambdaCall:
  Enabled: false

Style/LineEndConcatenation:
  Enabled: false

Style/MethodCallWithArgsParentheses:
  Enabled: false

Style/MethodCallWithoutArgsParentheses:
  Enabled: false

Style/MethodCalledOnDoEndBlock:
  Enabled: false

Style/MethodDefParentheses:
  Enabled: true

Lint/MissingSuper:
  Enabled: false

Style/MinMax:
  Enabled: true

Style/MissingElse:
  Enabled: false

Style/MissingRespondToMissing:
  Enabled: false

Style/MixinGrouping:
  Enabled: false

Style/MixinUsage:
  Enabled: false

Style/ModuleFunction:
  Enabled: false

Style/MultilineBlockChain:
  Enabled: false

Style/MultilineIfModifier:
  Enabled: false

Style/MultilineIfThen:
  Enabled: false

Style/MultilineMemoization:
  Enabled: false

Style/MultilineTernaryOperator:
  Enabled: false

Style/MultipleComparison:
  Enabled: false

Style/MutableConstant:
  Enabled: false

Style/NegatedIf:
  Enabled: false

Style/NegatedWhile:
  Enabled: false

Style/NestedModifier:
  Enabled: false

Style/NestedParenthesizedCalls:
  Enabled: false

Style/NestedTernaryOperator:
  Enabled: false

Style/Next:
  Enabled: false

Style/NilComparison:
  Enabled: false

Style/NonNilCheck:
  Enabled: false

Style/Not:
  Enabled: false

Style/NumericLiteralPrefix:
  Enabled: false

Style/NumericLiterals:
  Enabled: false

Style/NumericPredicate:
  Enabled: false

Style/OneLineConditional:
  Enabled: false

Style/OptionHash:
  Enabled: false

Style/OptionalArguments:
  Enabled: false

Style/ParallelAssignment:
  Enabled: false

Style/OrAssignment:
  Enabled: true

Style/ParenthesesAroundCondition:
  Enabled: false

Style/PercentLiteralDelimiters:
  Enabled: false

Style/PercentQLiterals:
  Enabled: false

Style/PerlBackrefs:
  Enabled: false

Style/PreferredHashMethods:
  Enabled: false

Style/Proc:
  Enabled: false

Style/RaiseArgs:
  Enabled: false

Style/RandomWithOffset:
  Enabled: false

Style/RedundantBegin:
  Enabled: false

Style/RedundantConditional:
  Enabled: true

Style/RedundantException:
  Enabled: false

Style/RedundantFreeze:
  Enabled: false

Style/RedundantParentheses:
  Enabled: false

Style/RedundantReturn:
  Enabled: false

Style/RedundantSelf:
  Enabled: false

Style/RegexpLiteral:
  Enabled: false

Style/RescueModifier:
  Enabled: false

Style/RescueStandardError:
  Enabled: false

Style/ReturnNil:
  Enabled: false

Style/SafeNavigation:
  Enabled: false

Style/SelfAssignment:
  Enabled: false

Style/Semicolon:
  Enabled: false

Style/Send:
  Enabled: false

Style/SignalException:
  Enabled: false

Style/SingleLineBlockParams:
  Enabled: false

Style/SingleLineMethods:
  Enabled: false

Style/SpecialGlobalVars:
  Enabled: false

Style/StabbyLambdaParentheses:
  Enabled: false

Style/StderrPuts:
  Enabled: true

Style/StringHashKeys:
  Enabled: false

Style/StringLiterals:
  Enabled: false

Style/StringLiteralsInInterpolation:
  Enabled: false

Style/StringMethods:
  Enabled: false

Style/StructInheritance:
  Enabled: false

Style/SymbolArray:
  Enabled: true
  EnforcedStyle: brackets

Style/SymbolLiteral:
  Enabled: true

Style/SymbolProc:
  Enabled: true

Style/TernaryParentheses:
  Enabled: false

Style/TrailingBodyOnClass:
  Enabled: true

Style/TrailingBodyOnMethodDefinition:
  Enabled: true

Style/TrailingBodyOnModule:
  Enabled: true

Style/TrailingCommaInArguments:
  Enabled: true

Style/TrailingCommaInArrayLiteral:
  Enabled: true

Style/TrailingCommaInHashLiteral:
  Enabled: true

Style/TrailingMethodEndStatement:
  Enabled: true

Style/TrailingUnderscoreVariable:
  Enabled: false

Style/TrivialAccessors:
  Enabled: false

Style/UnlessElse:
  Enabled: true

Style/RedundantCapitalW:
  Enabled: true

Style/RedundantInterpolation:
  Enabled: true

Style/RedundantPercentQ:
  Enabled: true

Style/VariableInterpolation:
  Enabled: true

Style/WhenThen:
  Enabled: false

Style/WhileUntilDo:
  Enabled: true

# Disabled because we don't want to use modifiers
Style/WhileUntilModifier:
  Enabled: false

Style/WordArray:
  Enabled: true
  EnforcedStyle: brackets

Style/YodaCondition:
  Enabled: true

Style/ZeroLengthPredicate:
  Enabled: true