AllCops: Exclude: - ./spec/integration_specs/**/* - ./spec/Moya.podspec - ./vendor/**/* - ./tmp/**/* - ./SourceKitten/**/* SuggestExtensions: false TargetRubyVersion: 2.6 #- Pending Cops as of 1.56.3 ---------------------------------------------# Gemspec/DeprecatedAttributeAssignment: # new in 1.30 Enabled: true Gemspec/DevelopmentDependencies: # new in 1.44 Enabled: false Gemspec/RequireMFA: # new in 1.23 Enabled: true Layout/LineContinuationLeadingSpace: # new in 1.31 Enabled: false Layout/LineContinuationSpacing: # new in 1.31 Enabled: true Layout/SpaceBeforeBrackets: # (new in 1.7) Enabled: true Lint/AmbiguousAssignment: # (new in 1.7) Enabled: true Lint/AmbiguousRange: # (new in 1.19) Enabled: true Lint/ConstantOverwrittenInRescue: # new in 1.31 Enabled: true Lint/DeprecatedConstants: # (new in 1.8) Enabled: true Lint/DuplicateBranch: # (new in 1.3) Enabled: true Lint/DuplicateMagicComment: # new in 1.37 Enabled: true Lint/DuplicateMatchPattern: # new in 1.50 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/EmptyInPattern: # (new in 1.16) Enabled: true Lint/IncompatibleIoSelectWithFiberScheduler: # new in 1.21 Enabled: true Lint/ItWithoutArgumentsInBlock: # new in 1.59 Enabled: true Lint/LambdaWithoutLiteralBlock: # (new in 1.8) Enabled: true Lint/LiteralAssignmentInCondition: # new in 1.58 Enabled: true Lint/MixedCaseRange: # new in 1.53 Enabled: true Lint/NonAtomicFileOperation: # new in 1.31 Enabled: true Lint/NoReturnInBeginEndBlocks: # (new in 1.2) Enabled: true Lint/NumberedParameterAssignment: # (new in 1.9) Enabled: true Lint/OrAssignmentToConstant: # (new in 1.9) Enabled: true Lint/RedundantDirGlobSort: # (new in 1.8) Enabled: true Lint/RedundantRegexpQuantifiers: # new in 1.53 Enabled: true Lint/RefinementImportMethods: # new in 1.27 Enabled: true Lint/RequireRangeParentheses: # new in 1.32 Enabled: true Lint/RequireRelativeSelfPath: # new in 1.22 Enabled: true Lint/SymbolConversion: # (new in 1.9) Enabled: true Lint/ToEnumArguments: # (new in 1.1) Enabled: true Lint/TripleQuotes: # (new in 1.9) Enabled: true Lint/UnexpectedBlockArity: # (new in 1.5) Enabled: true Lint/UnmodifiedReduceAccumulator: # (new in 1.1) Enabled: true Lint/UselessRescue: # new in 1.43 Enabled: true Lint/UselessRuby2Keywords: # new in 1.23 Enabled: true Metrics/CollectionLiteralLength: # new in 1.47 Enabled: true Naming/BlockForwarding: # new in 1.24 Enabled: true Naming/InclusiveLanguage: # (new in 1.18) Enabled: true Security/CompoundHash: # new in 1.28 Enabled: true Style/ConcatArrayLiterals: # new in 1.41 Enabled: true Security/IoMethods: # new in 1.22 Enabled: true Style/ArgumentsForwarding: # (new in 1.1) Enabled: true Style/ArrayIntersect: # new in 1.40 Enabled: true Style/CollectionCompact: # (new in 1.2) Enabled: true Style/ComparableClamp: # new in 1.44 Enabled: true Style/DataInheritance: # new in 1.49 Enabled: true Style/DirEmpty: # new in 1.48 Enabled: true Style/DocumentDynamicEvalDefinition: # (new in 1.1) Enabled: true Style/EmptyHeredoc: # new in 1.32 Enabled: true Style/EndlessMethod: # (new in 1.8) Enabled: true Style/EnvHome: # new in 1.29 Enabled: true Style/ExactRegexpMatch: # new in 1.51 Enabled: true Style/FetchEnvVar: # new in 1.28 Enabled: true Style/FileEmpty: # new in 1.48 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/HashExcept: # (new in 1.7) Enabled: true Style/IfWithBooleanLiteralBranches: # (new in 1.9) Enabled: true Style/InPatternThen: # (new in 1.16) Enabled: true Style/MagicCommentFormat: # new in 1.35 Enabled: true Style/MapCompactWithConditionalBlock: # new in 1.30 Enabled: true Style/MapIntoArray: # new in 1.63 Enabled: true Style/MapToHash: # new in 1.24 Enabled: true Style/MapToSet: # new in 1.42 Enabled: true Style/MinMaxComparison: # new in 1.42 Enabled: true Style/MultilineInPatternThen: # (new in 1.16) Enabled: true Style/NegatedIfElseCondition: # (new in 1.2) Enabled: true Style/NestedFileDirname: # new in 1.26 Enabled: true Style/NilLambda: # (new in 1.3) Enabled: true Style/NumberedParameters: # new in 1.22 Enabled: true Style/NumberedParametersLimit: # new in 1.22 Enabled: true Style/ObjectThen: # new in 1.28 Enabled: true Style/OpenStructUse: # new in 1.23 Enabled: true Style/OperatorMethodCall: # new in 1.37 Enabled: true Style/QuotedSymbols: # (new in 1.16) Enabled: true Style/RedundantArgument: # (new in 1.4) Enabled: true Style/RedundantArrayConstructor: # new in 1.52 Enabled: true Style/RedundantConstantBase: # new in 1.40 Enabled: true Style/RedundantCurrentDirectoryInPath: # new in 1.53 Enabled: true Style/RedundantDoubleSplatHashBraces: # new in 1.41 Enabled: true Style/RedundantEach: # new in 1.38 Enabled: true Style/RedundantFilterChain: # new in 1.52 Enabled: true Style/RedundantHeredocDelimiterQuotes: # new in 1.45 Enabled: true Style/RedundantInitialize: # new in 1.27 Enabled: true Style/RedundantLineContinuation: # new in 1.49 Enabled: true Style/RedundantRegexpArgument: # new in 1.53 Enabled: true Style/RedundantRegexpConstructor: # new in 1.52 Enabled: true Style/RedundantSelfAssignmentBranch: # (new in 1.19) Enabled: true Style/RedundantStringEscape: # new in 1.37 Enabled: true Style/ReturnNilInPredicateMethodDefinition: # new in 1.53 Enabled: true Style/SelectByRegexp: # new in 1.22 Enabled: true Style/SendWithLiteralMethodName: # new in 1.64 Enabled: true Style/SingleLineDoEndBlock: # new in 1.57 Enabled: true Style/StringChars: # (new in 1.12) Enabled: true Style/SuperArguments: # new in 1.64 Enabled: true Style/SuperWithArgsParentheses: # new in 1.58 Enabled: true Style/SwapValues: # (new in 1.1) Enabled: true Style/YAMLFileRead: # new in 1.53 Enabled: true # At the moment not ready to be used # https://github.com/bbatsov/rubocop/issues/947 Style/Documentation: Enabled: false #- Jazzy -----------------------------------------------------------------# # 20 lines is more reasonable than rubocop's default of 10 Metrics/MethodLength: Max: 20 Metrics/AbcSize: Enabled: false Metrics/ModuleLength: Enabled: false Metrics/BlockLength: Enabled: false Metrics/ParameterLists: CountKeywordArgs: false Style/NumericPredicate: Enabled: false Layout/HeredocIndentation: Enabled: false # We adopted raise instead of fail. Style/SignalException: EnforcedStyle: only_raise # They are idiomatic Lint/AssignmentInCondition: Enabled: false # Allow backticks Style/AsciiComments: Enabled: false # Indentation clarifies logic branches in implementations Style/IfUnlessModifier: Enabled: false # No enforced convention here. Style/SingleLineBlockParams: Enabled: false # We only add the comment when needed. Style/Encoding: Enabled: false # Having these make it easier to *not* forget to add one when adding a new # value and you can simply copy the previous line. Style/TrailingCommaInArrayLiteral: EnforcedStyleForMultiline: comma Style/TrailingCommaInHashLiteral: EnforcedStyleForMultiline: comma Style/TrailingCommaInArguments: EnforcedStyleForMultiline: comma Style/SpecialGlobalVars: Enabled: false Style/MultilineBlockChain: Enabled: false # We prefer explicit `a, _ = arr` to `a, = arr` (which could be misread as a stray comma) Style/TrailingUnderscoreVariable: Enabled: false # For lambdas nested within certain expressions, this rule forces either ugly # parens or curly braces that violate the "do/end for multiline blocks" rule. Style/Lambda: Enabled: false # Disallowing indented "when" clauses destroys readability when using the # single-line "when/then" style. Layout/CaseIndentation: Enabled: false # These are both subjective judgements that depend on the situation, and are # not appropriate as absolute rules. Style/GuardClause: Enabled: false Style/Next: Enabled: false # Avoid the least-readable varieties of regular expressions. Style/RegexpLiteral: EnforcedStyle: mixed # Sometimes easier to read either way Style/AccessorGrouping: Enabled: false # Avoid mandatory wide indentation Layout/MultilineMethodCallIndentation: EnforcedStyle: indented Layout/LineEndStringConcatenationIndentation: Enabled: true EnforcedStyle: indented # Avoid false positives with `Pathname` Style/StringConcatenation: Mode: conservative # Compatibility with earlier Rubocops Metrics/CyclomaticComplexity: Max: 10 Metrics/PerceivedComplexity: Max: 10 # Too much firing on basic arithmetic Lint/AmbiguousOperatorPrecedence: Enabled: false #- Jazzy specs -----------------------------------------------------------# # Allow for `should.match /regexp/`. Lint/AmbiguousRegexpLiteral: Exclude: - spec/**/* # Allow `object.should == object` syntax. Lint/Void: Exclude: - spec/**/* Style/ClassAndModuleChildren: Exclude: - spec/**/* Lint/BinaryOperatorWithIdenticalOperands: Exclude: - spec/**/*