# See documentation for details on definitions: # https://rubocop.readthedocs.io require: - rubocop-performance - rubocop-rspec - rubocop-vendor inherit_mode: merge: - AllowedNames - Exclude AllCops: Exclude: - "bin/**/*" - "data/**/*" - "db/data/**/*" - "db/migrate/**/*" - "db/schema.rb" - "gemfiles/**/*" - "lib/tasks/circle_0.rake" - "log/**/*" - "node_modules/**/*" - "public/**/*" - "tmp/**/*" - "vendor/**/*" SuggestExtensions: false Layout/ParameterAlignment: Enabled: false Lint/AmbiguousBlockAssociation: Exclude: - "spec/**/*" Layout/ArgumentAlignment: EnforcedStyle: with_fixed_indentation Layout/DotPosition: EnforcedStyle: trailing Layout/CaseIndentation: Enabled: false Layout/ElseAlignment: Enabled: false Layout/EmptyLineBetweenDefs: AllowAdjacentOneLineDefs: true Layout/EndAlignment: Enabled: false Layout/ExtraSpacing: Enabled: true AllowForAlignment: false Layout/FirstArrayElementIndentation: EnforcedStyle: consistent Layout/IndentationWidth: Enabled: true Width: 2 Layout/LineLength: AllowedPatterns: ['(\A|\s)#'] Max: 100 Layout/FirstHashElementIndentation: EnforcedStyle: consistent Layout/MultilineMethodCallIndentation: EnforcedStyle: indented Metrics/AbcSize: Max: 18 Metrics/BlockLength: Enabled: false Metrics/ClassLength: Max: 150 Metrics/CyclomaticComplexity: Max: 7 Metrics/MethodLength: IgnoredMethods: ["extended"] Max: 25 Metrics/ModuleLength: Exclude: - "spec/**/*" Metrics/ParameterLists: Enabled: false Metrics/PerceivedComplexity: Max: 8 Style/AndOr: EnforcedStyle: conditionals Style/BlockDelimiters: Enabled: false Style/ClassAndModuleChildren: Enabled: false Style/Documentation: Enabled: false Style/FormatStringToken: Enabled: false Style/FrozenStringLiteralComment: Enabled: false Style/NumericPredicate: Enabled: false Style/StringLiterals: Enabled: false Style/SymbolArray: Enabled: false Style/TrailingCommaInArguments: EnforcedStyleForMultiline: comma Style/TrailingCommaInArrayLiteral: EnforcedStyleForMultiline: comma Style/TrailingCommaInHashLiteral: EnforcedStyleForMultiline: comma Style/WordArray: Enabled: false Style/NegatedIf: Enabled: false RSpec/AnyInstance: Enabled: false RSpec/ContextWording: Enabled: false RSpec/EmptyExampleGroup: Enabled: false RSpec/ExampleLength: Max: 15 RSpec/LetSetup: Enabled: false RSpec/MessageChain: Enabled: false RSpec/MultipleExpectations: Enabled: false RSpec/MultipleMemoizedHelpers: Enabled: false RSpec/NamedSubject: Enabled: false RSpec/NestedGroups: Max: 6 # Cops added in Rubocop 0.80 or later need to be enabled one-by-one below. # For more information: https://docs.rubocop.org/en/latest/versioning/ # 0.80 Style/HashEachMethods: Enabled: true Style/HashTransformKeys: Enabled: true Style/HashTransformValues: Enabled: true # 0.81 Lint/RaiseException: Enabled: true Lint/StructNewOverride: Enabled: true # 0.82 Layout/SpaceAroundMethodCallOperator: Enabled: true Style/ExponentialNotation: Enabled: true # 0.83 Layout/EmptyLinesAroundAttributeAccessor: Enabled: True Style/SlicingWithRange: Enabled: True # 0.84 Lint/DeprecatedOpenSSLConstant: Enabled: True # 0.85 Lint/MixedRegexpCaptureTypes: Enabled: True Style/RedundantRegexpCharacterClass: Enabled: True Style/RedundantRegexpEscape: Enabled: True # 0.86 Style/RedundantFetchBlock: Enabled: True # 0.87 Style/AccessorGrouping: Enabled: True Style/BisectedAttrAccessor: Enabled: True Style/RedundantAssignment: Enabled: True # 0.88 Lint/DuplicateElsifCondition: Enabled: True Style/ArrayCoercion: Enabled: True Style/CaseLikeIf: Enabled: True Style/HashAsLastArrayItem: Enabled: True Style/HashLikeCase: Enabled: True Style/RedundantFileExtensionInRequire: Enabled: True # 0.89 Lint/BinaryOperatorWithIdenticalOperands: Enabled: True Lint/DuplicateRescueException: Enabled: True Lint/EmptyConditionalBody: Enabled: True Lint/FloatComparison: Enabled: True Lint/MissingSuper: Enabled: True Lint/OutOfRangeRegexpRef: Enabled: True Lint/SelfAssignment: Enabled: True Lint/TopLevelReturnWithArgument: Enabled: True Lint/UnreachableLoop: Enabled: True Style/ExplicitBlockArgument: Enabled: True Style/GlobalStdStream: Enabled: False Style/OptionalBooleanParameter: Enabled: True Style/SingleArgumentDig: Enabled: True Style/StringConcatenation: Enabled: True # rubocop-performance 1.7 Performance/AncestorsInclude: Enabled: True Performance/BigDecimalWithNumericArgument: Enabled: True Performance/RedundantSortBlock: Enabled: True Performance/RedundantStringChars: Enabled: True Performance/ReverseFirst: Enabled: True Performance/SortReverse: Enabled: True Performance/Squeeze: Enabled: True Performance/StringInclude: Enabled: True # 0.90 Lint/DuplicateRequire: Enabled: True Lint/EmptyFile: Enabled: True Lint/TrailingCommaInAttributeDeclaration: Enabled: True Lint/UselessMethodDefinition: Enabled: True Style/CombinableLoops: Enabled: True Style/KeywordParametersOrder: Enabled: True Style/RedundantSelfAssignment: Enabled: True Style/SoleNestedConditional: Enabled: True # rubocop-performance 1.7 Performance/Sum: Enabled: True # rubocop 1.1 Lint/DuplicateRegexpCharacterClassElement: Enabled: True Lint/EmptyBlock: Enabled: False Lint/ToEnumArguments: Enabled: True Lint/UnmodifiedReduceAccumulator: Enabled: True Style/ArgumentsForwarding: Enabled: True Style/DocumentDynamicEvalDefinition: Enabled: True Style/SwapValues: Enabled: True # rubocop 1.2 Lint/NoReturnInBeginEndBlocks: Enabled: True Style/CollectionCompact: Enabled: True Style/NegatedIfElseCondition: Enabled: True # rubocop 1.3 Lint/DuplicateBranch: Enabled: True Lint/EmptyClass: Enabled: False Style/NilLambda: Enabled: False # rubocop 1.4 Style/RedundantArgument: Enabled: True # rubocop 1.5 Lint/UnexpectedBlockArity: Enabled: True # rubocop 1.7 Layout/SpaceBeforeBrackets: Enabled: True Lint/AmbiguousAssignment: Enabled: True Style/HashExcept: Enabled: True # rubocop 1.8 Lint/DeprecatedConstants: Enabled: True Lint/LambdaWithoutLiteralBlock: Enabled: True Lint/RedundantDirGlobSort: Enabled: True Style/EndlessMethod: Enabled: True Performance/CollectionLiteralInLoop: Enabled: True # rubocop 1.9 Lint/NumberedParameterAssignment: Enabled: False Lint/OrAssignmentToConstant: Enabled: True Lint/SymbolConversion: Enabled: True Lint/TripleQuotes: Enabled: True Style/IfWithBooleanLiteralBranches: Enabled: False # rubocop 1.30 Gemspec/DeprecatedAttributeAssignment: Enabled: True # rubocop 1.23 Gemspec/RequireMFA: Enabled: False Style/HashConversion: Enabled: True # rubocop-performance 1.9 Performance/BlockGivenWithExplicitBlock: Enabled: True Performance/ConstantRegexp: Enabled: True Performance/MethodObjectAsBlock: Enabled: True # rubocop-performance 1.10 Performance/RedundantEqualityComparisonBlock: Enabled: False Performance/RedundantSplitRegexpArgument: Enabled: True # rubocop 1.12.0 Style/StringChars: Enabled: True # rubocop-performance 1.11 Performance/MapCompact: Enabled: True # rubocop 1.16 Lint/EmptyInPattern: Enabled: True Style/InPatternThen: Enabled: True Style/MultilineInPatternThen: Enabled: True Style/QuotedSymbols: Enabled: True # rubocop 1.18 Layout/LineEndStringConcatenationIndentation: Enabled: True # rubocop 1.19 Lint/AmbiguousRange: Enabled: True Style/RedundantSelfAssignmentBranch: Enabled: True # rubocop 1.21 Lint/AmbiguousOperatorPrecedence: Enabled: True Lint/IncompatibleIoSelectWithFiberScheduler: Enabled: True # rubocop 1.22 Lint/RequireRelativeSelfPath: Enabled: True Security/IoMethods: Enabled: True Style/NumberedParameters: Enabled: True Style/NumberedParametersLimit: Enabled: True Style/SelectByRegexp: Enabled: True # rubocop-rspec 2.4 RSpec/IdenticalEqualityAssertion: Enabled: True # rubocop-rspec 2.5 RSpec/ExcessiveDocstringSpacing: Enabled: True RSpec/SubjectDeclaration: Enabled: True # rubocop-performance 1.12 Performance/ConcurrentMonotonicTime: Enabled: True # rubocop-performance 1.13 Performance/StringIdentifierArgument: Enabled: True # rubocop 1.23 Lint/UselessRuby2Keywords: Enabled: True Style/OpenStructUse: Enabled: True # rubocop 1.24 Naming/BlockForwarding: Enabled: True EnforcedStyle: explicit Style/FileRead: Enabled: True Style/FileWrite: Enabled: True Style/MapToHash: Enabled: True Style/HashSyntax: EnforcedShorthandSyntax: never # rubocop-rspec 2.7 RSpec/FactoryBot/SyntaxMethods: Enabled: False