require: rubocop-performance AllCops: TargetRubyVersion: 2.6 DisabledByDefault: true DisplayCopNames: true Exclude: - 'db/**/*' - 'script/**/*' - 'tmp/**/*' - 'vendor/**/*' - 'node_modules/**/*' inherit_from: - bixby_rails_enabled.yml - bixby_rspec_enabled.yml Style/Alias: Enabled: true Style/AndOr: Enabled: true Style/ArrayJoin: Enabled: true Style/Attr: Enabled: true Style/BeginBlock: Enabled: true Style/BarePercentLiterals: Enabled: true Style/BlockComments: Enabled: true Style/BlockDelimiters: Enabled: true Style/CaseEquality: Enabled: true Style/CharacterLiteral: Enabled: true Style/ClassCheck: Enabled: true Style/ClassMethods: Enabled: true Style/ClassVars: Enabled: true Style/ColonMethodCall: Enabled: true Style/CollectionMethods: PreferredMethods: collect: 'map' collect!: 'map!' inject: 'reduce' detect: 'find' find_all: 'select' Enabled: false Style/CommandLiteral: Enabled: true Style/CommentAnnotation: Enabled: true Style/ConditionalAssignment: Enabled: true Style/DefWithParentheses: Enabled: true Style/Documentation: Enabled: false Exclude: - 'spec/**/*' - 'test/**/*' Style/DoubleNegation: Enabled: true Style/EachForSimpleLoop: Enabled: true Style/EachWithObject: Enabled: true Style/EmptyElse: Enabled: true Style/EmptyCaseCondition: Enabled: true Style/EmptyLiteral: Enabled: true Style/EmptyMethod: Enabled: true Style/EndBlock: Enabled: true Style/EvenOdd: Enabled: true Style/FrozenStringLiteralComment: Enabled: true Style/For: Enabled: true Style/FormatString: Enabled: true Style/GlobalVars: Enabled: true Style/GuardClause: Enabled: true Style/HashSyntax: Enabled: true Style/IfInsideElse: Enabled: true Style/IfUnlessModifier: Enabled: true Style/IfUnlessModifierOfIfUnless: Enabled: true Style/IfWithSemicolon: Enabled: true Style/IdenticalConditionalBranches: Enabled: true Style/InfiniteLoop: Enabled: true Style/Lambda: Enabled: true Style/LambdaCall: Enabled: true Style/LineEndConcatenation: Enabled: true Style/MethodCallWithoutArgsParentheses: Enabled: true Style/MethodDefParentheses: Enabled: true Style/MethodMissingSuper: Enabled: true Style/MissingRespondToMissing: Enabled: true Style/ModuleFunction: Enabled: true Style/MultilineBlockChain: Enabled: true Style/MultilineIfThen: Enabled: true Style/MultilineIfModifier: Enabled: true Style/MultilineMemoization: Enabled: true Style/MultilineTernaryOperator: Enabled: true Style/MutableConstant: Enabled: true Style/NegatedIf: Enabled: true Style/NegatedWhile: Enabled: true Style/NestedModifier: Enabled: true Style/NestedParenthesizedCalls: Enabled: true Style/NestedTernaryOperator: Enabled: true Style/Next: Enabled: true Style/NilComparison: Enabled: true Style/NonNilCheck: Enabled: true Style/Not: Enabled: true Style/NumericLiterals: Enabled: true Style/NumericLiteralPrefix: Enabled: true Style/NumericPredicate: # This will change to a new method call which isn't guaranteed to be on the # object. Switching these methods has to be done with knowledge of the types # of the variables which rubocop doesn't have. AutoCorrect: false Enabled: true Style/OneLineConditional: Enabled: true Style/OptionalArguments: Enabled: true Style/ParallelAssignment: Enabled: true Style/ParenthesesAroundCondition: Enabled: true Style/PercentLiteralDelimiters: Enabled: true Style/PercentQLiterals: Enabled: true Style/PerlBackrefs: Enabled: true Style/PreferredHashMethods: Enabled: true Style/Proc: Enabled: true Style/RaiseArgs: Enabled: true Style/RedundantBegin: Enabled: true Style/RedundantException: Enabled: true Style/RedundantFreeze: Enabled: true Style/RedundantParentheses: Enabled: true Style/RedundantReturn: Enabled: true Style/RedundantSelf: Enabled: true Style/RedundantSortBy: Enabled: true Style/RescueModifier: Enabled: true Style/Sample: Enabled: true Style/SafeNavigation: Enabled: true Style/SelfAssignment: Enabled: true Style/Semicolon: Enabled: true Style/SignalException: Enabled: true Style/SingleLineMethods: Enabled: true Style/SpecialGlobalVars: Enabled: true Style/StabbyLambdaParentheses: Enabled: true Style/StringLiteralsInInterpolation: Enabled: true Style/StructInheritance: Enabled: true Style/SymbolLiteral: Enabled: true Style/SymbolProc: Enabled: true Style/TernaryParentheses: Enabled: true Style/TrailingCommaInArguments: Enabled: true Style/TrailingCommaInArrayLiteral: Enabled: true Style/TrailingCommaInHashLiteral: Enabled: true Style/TrivialAccessors: Enabled: true Style/UnlessElse: Enabled: true Style/RedundantCapitalW: Enabled: true Style/RedundantInterpolation: Enabled: true Style/RedundantPercentQ: Enabled: true Style/TrailingUnderscoreVariable: AllowNamedUnderscoreVariables: true Enabled: true Style/VariableInterpolation: Enabled: true Style/WhenThen: Enabled: true Style/WhileUntilDo: Enabled: true Style/WhileUntilModifier: Enabled: true Style/ZeroLengthPredicate: Enabled: true #################### Layout ############################### Layout/ArrayAlignment: Enabled: true Layout/HashAlignment: Enabled: true Layout/ParameterAlignment: Enabled: true Layout/BlockAlignment: Enabled: true Layout/BlockEndNewline: Enabled: true Layout/CaseIndentation: Enabled: true Layout/ClosingParenthesisIndentation: Enabled: true Layout/ConditionPosition: Enabled: true Layout/CommentIndentation: Enabled: true Layout/DefEndAlignment: Enabled: true Layout/DotPosition: Enabled: true Layout/ElseAlignment: Enabled: true Layout/EndAlignment: Enabled: true Layout/EmptyLineBetweenDefs: Enabled: true Layout/EmptyLines: Enabled: true Layout/EmptyLinesAroundAccessModifier: Enabled: true Layout/EmptyLinesAroundBlockBody: Enabled: true Layout/EmptyLinesAroundClassBody: Enabled: true Layout/EmptyLinesAroundModuleBody: Enabled: true Layout/EmptyLinesAroundMethodBody: Enabled: true Layout/EndOfLine: Enabled: true Layout/ExtraSpacing: Enabled: true Layout/IndentationStyle: Enabled: true Layout/InitialIndentation: Enabled: true Layout/FirstParameterIndentation: Enabled: true Layout/IndentationConsistency: Enabled: true EnforcedStyle: normal Layout/IndentationWidth: Enabled: true Layout/FirstArrayElementIndentation: Enabled: true Layout/AssignmentIndentation: Enabled: true Layout/FirstHashElementIndentation: Enabled: true Layout/SpaceInLambdaLiteral: Enabled: true Layout/LeadingCommentSpace: Enabled: true Layout/LineLength: Enabled: true Max: 200 Exclude: - '**/*.gemspec' Layout/MultilineArrayBraceLayout: Enabled: true Layout/MultilineBlockLayout: Enabled: true Layout/MultilineHashBraceLayout: Enabled: true Layout/MultilineMethodCallBraceLayout: Enabled: true Layout/MultilineMethodCallIndentation: Enabled: true Layout/MultilineMethodDefinitionBraceLayout: Enabled: true Layout/MultilineOperationIndentation: Enabled: true Layout/RescueEnsureAlignment: Enabled: true Layout/SpaceBeforeFirstArg: Enabled: true Layout/SpaceAfterColon: Enabled: true Layout/SpaceAfterComma: Enabled: true Layout/SpaceAfterMethodName: Enabled: true Layout/SpaceAfterNot: Enabled: true Layout/SpaceAfterSemicolon: Enabled: true Layout/SpaceBeforeBlockBraces: Enabled: true Layout/SpaceBeforeComma: Enabled: true Layout/SpaceBeforeComment: Enabled: true Layout/SpaceBeforeSemicolon: Enabled: true Layout/SpaceInsideBlockBraces: Enabled: true Layout/SpaceAroundBlockParameters: Enabled: true Layout/SpaceAroundEqualsInParameterDefault: Enabled: true Layout/SpaceAroundKeyword: Enabled: true Layout/SpaceAroundOperators: Enabled: true Layout/SpaceInsideArrayPercentLiteral: Enabled: true Layout/SpaceInsidePercentLiteralDelimiters: Enabled: true Layout/SpaceInsideReferenceBrackets: Enabled: true Layout/SpaceInsideArrayLiteralBrackets: Enabled: true Layout/SpaceInsideHashLiteralBraces: Enabled: true Layout/SpaceInsideParens: Enabled: true Layout/SpaceInsideRangeLiteral: Enabled: true Layout/SpaceInsideStringInterpolation: Enabled: true Layout/TrailingEmptyLines: Enabled: true Layout/TrailingWhitespace: Enabled: true #################### Naming ################################ Naming/AccessorMethodName: Enabled: true Naming/AsciiIdentifiers: Enabled: true Naming/BinaryOperatorParameterName: Enabled: true Naming/ClassAndModuleCamelCase: Enabled: true Naming/ConstantName: Enabled: true Naming/FileName: Enabled: true Exclude: - '**/Gemfile' - '**/*.rake' - 'Capfile' - 'config/deploy/*' Naming/MethodName: Enabled: true Naming/PredicateName: Enabled: true Naming/VariableName: Enabled: true Naming/VariableNumber: Enabled: true #################### Metrics ############################### Metrics/AbcSize: Enabled: true Max: 28 Metrics/BlockNesting: Enabled: true Metrics/ClassLength: Enabled: true Exclude: - '**/*/catalog_controller.rb' Metrics/ModuleLength: Enabled: true Metrics/CyclomaticComplexity: Enabled: true Metrics/MethodLength: Enabled: true Max: 14 Metrics/BlockLength: Enabled: true Exclude: - '**/*.gemspec' - 'config/**/*' - '**/*/catalog_controller.rb' Metrics/ParameterLists: Enabled: true Metrics/PerceivedComplexity: Enabled: true #################### Lint ################################## ### Warnings Lint/AmbiguousOperator: Enabled: true Lint/AmbiguousRegexpLiteral: Enabled: true Lint/AssignmentInCondition: 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 AutoCorrect: false Lint/EmptyExpression: Enabled: true Lint/EmptyInterpolation: Enabled: true Lint/EmptyWhen: Enabled: true Lint/EnsureReturn: Enabled: true Lint/FlipFlop: Enabled: true Lint/FloatOutOfRange: Enabled: true Lint/FormatParameterMismatch: Enabled: true Lint/SuppressedException: Enabled: true Lint/ImplicitStringConcatenation: Enabled: true Lint/IneffectiveAccessModifier: Enabled: true Lint/InheritException: Enabled: true Lint/LiteralAsCondition: Enabled: true Lint/LiteralInInterpolation: Enabled: true Lint/Loop: Enabled: true Lint/MultipleComparison: Enabled: true Lint/NestedMethodDefinition: Enabled: true Lint/NextWithoutAccumulator: Enabled: true Lint/NonLocalExitFromIterator: Enabled: true Lint/ParenthesesAsGroupedExpression: Enabled: true Lint/PercentStringArray: Enabled: true Lint/PercentSymbolArray: Enabled: true Lint/RandOne: Enabled: true Lint/RequireParentheses: Enabled: true Lint/RescueException: Enabled: true Lint/SafeNavigationChain: Enabled: true Lint/ShadowedException: Enabled: true Lint/ShadowingOuterLocalVariable: Enabled: true Lint/RedundantStringCoercion: Enabled: true Lint/UnderscorePrefixedVariableName: Enabled: true Lint/UnifiedInteger: Enabled: true Lint/RedundantSplatExpansion: Enabled: true Lint/UnusedBlockArgument: Enabled: true Lint/UnusedMethodArgument: Enabled: true Lint/UnreachableCode: Enabled: true Lint/UselessAccessModifier: Enabled: true ContextCreatingMethods: [] MethodCreatingMethods: [] Lint/UselessAssignment: Enabled: true Lint/UselessComparison: Enabled: true Lint/UselessElseWithoutRescue: Enabled: true Lint/UselessSetterCall: Enabled: true Lint/Void: Enabled: true #################### Performance ########################### Performance/Casecmp: Enabled: true Performance/CaseWhenSplat: Enabled: true Performance/Count: # This cop has known compatibility issues with `ActiveRecord` and other # frameworks. ActiveRecord's `count` ignores the block that is passed to it. # For more information, see the documentation in the cop itself. # If you understand the known risk, you can disable `SafeAutoCorrect`. SafeAutoCorrect: true Enabled: true Performance/Detect: # This cop has known compatibility issues with `ActiveRecord` and other # frameworks. `ActiveRecord` does not implement a `detect` method and `find` # has its own meaning. Correcting `ActiveRecord` methods with this cop # should be considered unsafe. SafeAutoCorrect: true Enabled: true Performance/DoubleStartEndWith: Enabled: true Performance/EndWith: # This will change to a new method call which isn't guaranteed to be on the # object. Switching these methods has to be done with knowledge of the types # of the variables which rubocop doesn't have. AutoCorrect: false Enabled: true Performance/FixedSize: Enabled: true Performance/FlatMap: Enabled: true EnabledForFlattenWithoutParams: false # If enabled, this cop will warn about usages of # `flatten` being called without any parameters. # This can be dangerous since `flat_map` will only flatten 1 level, and # `flatten` without any parameters can flatten multiple levels. Performance/RangeInclude: Enabled: true Performance/RedundantBlockCall: Enabled: true Performance/RedundantMatch: Enabled: true Performance/RedundantMerge: Enabled: true Performance/RegexpMatch: Enabled: true Performance/ReverseEach: Enabled: true Performance/Size: Enabled: true Performance/CompareWithBlock: Enabled: true Performance/StartWith: # This will change to a new method call which isn't guaranteed to be on the # object. Switching these methods has to be done with knowledge of the types # of the variables which rubocop doesn't have. AutoCorrect: false Enabled: true Performance/StringReplacement: Enabled: true Performance/TimesMap: Enabled: true #################### Security ############################## Security/Eval: Enabled: true Security/JSONLoad: Enabled: true # Autocorrect here will change to a method that may cause crashes depending # on the value of the argument. AutoCorrect: false Security/MarshalLoad: Enabled: true Security/YAMLLoad: Enabled: true #################### Bundler ############################### Bundler/DuplicatedGem: Enabled: true Include: - '**/Gemfile' - '**/gems.rb' Bundler/OrderedGems: Enabled: true Include: - '**/Gemfile' - '**/gems.rb'