AllCops:
  TargetRubyVersion: 3.0.4
  Exclude:
    - Gemfile
    - Guardfile
    - Rakefile
    - vendor/**/*
  UseCache: false

Layout/AccessModifierIndentation:
  IndentationWidth: 2
Layout/BeginEndAlignment:
  Enabled: true
Layout/DotPosition:
  Enabled: true
  EnforcedStyle: trailing
Layout/EmptyLineAfterGuardClause:
  Enabled: false
Layout/EmptyLinesAroundAttributeAccessor:
  Enabled: true
Layout/EndAlignment:
  EnforcedStyleAlignWith: variable
Layout/HashAlignment:
  Enabled: false
Layout/HeredocIndentation:
  Enabled: true
Layout/LineLength:
  Max: 150
Layout/MultilineMethodCallBraceLayout:
  Enabled: false
Layout/MultilineMethodCallIndentation:
  EnforcedStyle: indented
Layout/SpaceAroundMethodCallOperator:
  Enabled: true
Layout/SpaceInsideBlockBraces:
  EnforcedStyleForEmptyBraces: space
Lint/AmbiguousBlockAssociation:
  Enabled: false
Lint/AmbiguousRegexpLiteral:
  Enabled: false
Lint/AssignmentInCondition:
  Enabled: true
  AllowSafeAssignment: true
Lint/BinaryOperatorWithIdenticalOperands:
  Enabled: true
Lint/ConstantDefinitionInBlock:
  Enabled: true
  Exclude:
    - "**/*_spec.rb"
Lint/DeprecatedOpenSSLConstant:
  Enabled: true
Lint/DuplicateElsifCondition:
  Enabled: true
Lint/DuplicateRequire:
  Enabled: true
Lint/DuplicateRescueException:
  Enabled: true
Lint/EmptyConditionalBody:
  Enabled: true
Lint/EmptyFile:
  Enabled: true
Lint/EmptyWhen:
  Enabled: false
Lint/FloatComparison:
  Enabled: true
Lint/IdentityComparison:
  Enabled: true
Lint/LiteralInInterpolation:
  Enabled: false
Lint/MissingSuper:
  Enabled: true
Lint/MixedRegexpCaptureTypes:
  Enabled: false
Lint/OutOfRangeRegexpRef:
  Enabled: true
Lint/RaiseException:
  Enabled: true
Lint/RedundantRequireStatement:
  Enabled: false
Lint/SelfAssignment:
  Enabled: true
Lint/StructNewOverride:
  Enabled: true
Lint/SuppressedException:
  Enabled: false
Lint/TopLevelReturnWithArgument:
  Enabled: true
Lint/TrailingCommaInAttributeDeclaration:
  Enabled: true
Lint/UnreachableLoop:
  Enabled: true
Lint/UselessMethodDefinition:
  Enabled: true
Lint/UselessTimes:
  Enabled: true
Metrics/AbcSize:
  Enabled: false
Metrics/BlockLength:
  Exclude:
    - Rakefile
    - "**/*.rake"
    - "**/*_test.rb"
    - "**/*_spec.rb"
Metrics/CyclomaticComplexity:
  Max: 10
Metrics/MethodLength:
  Max: 15
Metrics/ModuleLength:
  CountComments: false
  Max: 200
  Enabled: true
Metrics/ParameterLists:
  Enabled: true
  Max: 6
Metrics/PerceivedComplexity:
  Max: 10
Naming/AccessorMethodName:
  Enabled: false
Naming/FileName:
  Enabled: false
  Exclude: []
Naming/HeredocDelimiterNaming:
  Enabled: false
Naming/PredicateName:
  Enabled: true
  NamePrefix:
    - is_
    - has_
    - have_
  ForbiddenPrefixes:
    - is_
  Exclude:
    - spec/**/*
Naming/RescuedExceptionsVariableName:
  Enabled: false
Naming/VariableNumber:
  Enabled: false
Style/AccessorGrouping:
  Enabled: true
Style/Alias:
  Enabled: false
Style/AndOr:
  EnforcedStyle: conditionals
Style/ArrayCoercion:
  Enabled: true
Style/BisectedAttrAccessor:
  Enabled: true
Style/CaseLikeIf:
  Enabled: true
Style/ClassAndModuleChildren:
  Enabled: true
Style/CollectionMethods:
  Enabled: true
  PreferredMethods:
    collect: map
    collect!: map!
    inject: reduce
    detect: find
    find_all: select
    length: size
Style/CombinableLoops:
  Enabled: true
Style/CommentedKeyword:
  Enabled: false
Style/Documentation:
  Enabled: false
Style/DoubleNegation:
  Enabled: false
Style/EachWithObject:
  Enabled: false
Style/EmptyMethod:
  Enabled: false
Style/ExplicitBlockArgument:
  Enabled: true
Style/ExponentialNotation:
  Enabled: true
Style/FormatStringToken:
  Enabled: false
Style/GlobalStdStream:
  Enabled: false
Style/GuardClause:
  Enabled: false
Style/HashAsLastArrayItem:
  Enabled: true
Style/HashEachMethods:
  Enabled: true
Style/HashLikeCase:
  Enabled: true
Style/HashSyntax:
  EnforcedStyle: ruby19_no_mixed_keys
Style/HashTransformKeys:
  Enabled: true
Style/HashTransformValues:
  Enabled: true
Style/IfUnlessModifier:
  Enabled: false
Style/InlineComment:
  Enabled: false
Style/KeywordParametersOrder:
  Enabled: true
Style/Lambda:
  Enabled: false
Style/ModuleFunction:
  Enabled: false
Style/NegatedIf:
  Enabled: false
Style/Next:
  Enabled: false
Style/NumericLiteralPrefix:
  Enabled: false
Style/NumericLiterals:
  MinDigits: 9
Style/NumericPredicate:
  Enabled: false
Style/OneLineConditional:
  Enabled: false
Style/OptionalBooleanParameter:
  Enabled: true
Style/ParallelAssignment:
  Enabled: false
Style/PercentLiteralDelimiters:
  Enabled: false
Style/PreferredHashMethods:
  Enabled: false
Style/RaiseArgs:
  Enabled: false
  EnforcedStyle: exploded
Style/RedundantAssignment:
  Enabled: true
Style/RedundantFetchBlock:
  Enabled: true
Style/RedundantFileExtensionInRequire:
  Enabled: true
Style/RedundantRegexpCharacterClass:
  Enabled: true
Style/RedundantRegexpEscape:
  Enabled: true
Style/RedundantSelfAssignment:
  Enabled: true
Style/RegexpLiteral:
  Enabled: false
Style/RescueStandardError:
  Enabled: false
Style/Send:
  Enabled: false
Style/SignalException:
  Enabled: false
Style/SingleArgumentDig:
  Enabled: true
Style/SingleLineBlockParams:
  Enabled: false
Style/SingleLineMethods:
  Enabled: false
  AllowIfMethodIsEmpty: true
Style/SlicingWithRange:
  Enabled: true
Style/SoleNestedConditional:
  Enabled: true
Style/StringConcatenation:
  Enabled: true
Style/StringLiterals:
  Enabled: false
Style/StringLiteralsInInterpolation:
  Enabled: true
  EnforcedStyle: single_quotes
Style/SymbolArray:
  Enabled: false
Style/TrailingCommaInArguments:
  Enabled: false
Style/TrailingCommaInArrayLiteral:
  Enabled: false
Style/TrailingCommaInHashLiteral:
  Enabled: false
Style/TrailingUnderscoreVariable:
  Enabled: false
Style/VariableInterpolation:
  Enabled: false
Style/WhenThen:
  Enabled: false
Style/WordArray:
  Enabled: false
