# ----------------------------------------------------------------------------- # This file has been formatted via a Rake Task configuring cops from # RuboCop v1.57.2. # # To add more cops, paste configurations at the end of the file and run # the rake task via `bundle exec rake rubocop:format_config`. # ----------------------------------------------------------------------------- inherit_from: ".rubocop_todo.yml" require: - "./rubocop/jekyll" - rubocop-minitest - rubocop-performance - rubocop-rake - rubocop-rspec # Directive for all cops AllCops: TargetRubyVersion: 2.7 Include: - lib/**/*.rb - test/**/*.rb Exclude: - benchmark/**/* - bin/**/* - exe/**/* - script/**/* - tmp/**/* - vendor/**/* # Configure custom cop Jekyll/NoPutsAllowed: Exclude: - rake/*.rake # Configure built-in cops # ======================= # Gemspec cops # ---------------------------------------- Gemspec/DeprecatedAttributeAssignment: Enabled: true Gemspec/DevelopmentDependencies: Enabled: false Gemspec/RequireMFA: Enabled: false # Layout cops # ---------------------------------------- Layout/BeginEndAlignment: Enabled: true Layout/EmptyComment: Enabled: false Layout/EmptyLinesAroundAttributeAccessor: Enabled: true Layout/EndAlignment: Severity: error Layout/EndOfLine: Enabled: false Layout/FirstArrayElementIndentation: EnforcedStyle: consistent Layout/FirstHashElementIndentation: EnforcedStyle: consistent Layout/HashAlignment: EnforcedHashRocketStyle: table Layout/IndentationWidth: Severity: error Layout/LineContinuationLeadingSpace: Enabled: true Layout/LineContinuationSpacing: Enabled: true Layout/LineEndStringConcatenationIndentation: Enabled: true Layout/LineLength: Exclude: - Gemfile - Rakefile - features/**/*.rb - rake/**/*.rake Max: 100 Severity: warning Layout/MultilineMethodCallIndentation: EnforcedStyle: indented Layout/MultilineOperationIndentation: EnforcedStyle: indented Layout/SpaceAroundMethodCallOperator: Enabled: true Layout/SpaceBeforeBrackets: Enabled: true Layout/SpaceInsideHashLiteralBraces: Enabled: true Exclude: - test/**/*.rb # Lint cops # ---------------------------------------- Lint/AmbiguousAssignment: Enabled: true Lint/AmbiguousOperatorPrecedence: Enabled: true Lint/AmbiguousRange: Enabled: true Lint/BinaryOperatorWithIdenticalOperands: Enabled: true Lint/ConstantDefinitionInBlock: Enabled: true Exclude: - test/**/*.rb Lint/ConstantOverwrittenInRescue: Enabled: true Lint/DeprecatedConstants: Enabled: true Lint/DeprecatedOpenSSLConstant: Enabled: true Lint/DuplicateBranch: Enabled: true Lint/DuplicateElsifCondition: Enabled: true Lint/DuplicateMagicComment: Enabled: true Lint/DuplicateMatchPattern: Enabled: true Lint/DuplicateRegexpCharacterClassElement: Enabled: true Lint/DuplicateRequire: Enabled: true Lint/DuplicateRescueException: Enabled: true Lint/EmptyBlock: Enabled: true Lint/EmptyClass: Enabled: true Lint/EmptyConditionalBody: Enabled: true Lint/EmptyFile: Enabled: true Lint/FloatComparison: Enabled: true Lint/HashCompareByIdentity: Enabled: true Lint/IdentityComparison: Enabled: true Lint/LambdaWithoutLiteralBlock: Enabled: true Lint/MissingSuper: Enabled: false Lint/MixedCaseRange: Enabled: true Lint/MixedRegexpCaptureTypes: Enabled: false Lint/NestedPercentLiteral: Exclude: - test/test_site.rb Lint/NoReturnInBeginEndBlocks: Enabled: true Lint/NumberedParameterAssignment: Enabled: true Lint/OrAssignmentToConstant: Enabled: true Lint/OutOfRangeRegexpRef: Enabled: true Lint/RaiseException: Enabled: true Lint/RedundantDirGlobSort: Enabled: true Lint/RedundantRegexpQuantifiers: Enabled: true Lint/RedundantSafeNavigation: Enabled: true Lint/RefinementImportMethods: Enabled: true Lint/RequireRangeParentheses: Enabled: true Lint/RequireRelativeSelfPath: Enabled: true Lint/SelfAssignment: Enabled: true Lint/StructNewOverride: Enabled: true Lint/SymbolConversion: Enabled: true Lint/ToEnumArguments: Enabled: false Lint/TopLevelReturnWithArgument: Enabled: true Lint/TrailingCommaInAttributeDeclaration: Enabled: true Lint/TripleQuotes: Enabled: true Lint/UnexpectedBlockArity: Enabled: true Lint/UnmodifiedReduceAccumulator: Enabled: true Lint/UnreachableCode: Severity: error Lint/UnreachableLoop: Enabled: true Lint/UselessMethodDefinition: Enabled: true Lint/UselessRuby2Keywords: Enabled: true Lint/UselessTimes: Enabled: true Lint/Void: Exclude: - lib/jekyll/site.rb # Metrics cops # ---------------------------------------- Metrics/AbcSize: Max: 23 Metrics/BlockLength: Exclude: - lib/jekyll/configuration.rb - rake/**/*.rake - test/**/*.rb Metrics/ClassLength: Exclude: - features/**/*.rb - lib/jekyll/commands/serve.rb - lib/jekyll/configuration.rb - lib/jekyll/document.rb - lib/jekyll/site.rb - test/**/*.rb Max: 240 Metrics/CollectionLiteralLength: Enabled: true Metrics/CyclomaticComplexity: Exclude: - lib/jekyll/commands/serve.rb - lib/jekyll/utils.rb Max: 11 Metrics/MethodLength: CountComments: false Max: 20 Severity: error Metrics/ModuleLength: Exclude: - lib/jekyll/filters.rb Max: 240 Metrics/ParameterLists: Max: 4 Metrics/PerceivedComplexity: Max: 13 # Minitest cops # ---------------------------------------- Minitest/AssertEmptyLiteral: Enabled: false Minitest/AssertInDelta: Enabled: true Minitest/AssertKindOf: Enabled: true Minitest/AssertOperator: Enabled: false Minitest/AssertOutput: Enabled: true Minitest/AssertPathExists: Enabled: true Minitest/AssertPredicate: Enabled: false Minitest/AssertRaisesWithRegexpArgument: Enabled: true Minitest/AssertSame: Enabled: true Minitest/AssertSilent: Enabled: true Minitest/AssertWithExpectedArgument: Enabled: true Minitest/AssertionInLifecycleHook: Enabled: true Minitest/DuplicateTestRun: Enabled: true Minitest/EmptyLineBeforeAssertionMethods: Enabled: false Minitest/LifecycleHooksOrder: Enabled: true Minitest/LiteralAsActualArgument: Enabled: true Minitest/MultipleAssertions: Enabled: true Minitest/NonExecutableTestMethod: Enabled: true Minitest/NonPublicTestMethod: Enabled: true Minitest/RedundantMessageArgument: Enabled: true Minitest/RefuteInDelta: Enabled: true Minitest/RefuteKindOf: Enabled: true Minitest/RefuteOperator: Enabled: false Minitest/RefutePathExists: Enabled: true Minitest/RefutePredicate: Enabled: false Minitest/RefuteSame: Enabled: true Minitest/ReturnInTestMethod: Enabled: true Minitest/SkipEnsure: Enabled: true Minitest/SkipWithoutReason: Enabled: true Minitest/TestFileName: Enabled: true Exclude: - test/helper.rb Minitest/TestMethodName: Enabled: false Minitest/UnreachableAssertion: Enabled: true Minitest/UnspecifiedException: Enabled: true Minitest/UselessAssertion: Enabled: true # Naming cops # ---------------------------------------- Naming/FileName: Enabled: false Naming/HeredocDelimiterNaming: Exclude: - test/**/*.rb Naming/MemoizedInstanceVariableName: Exclude: - lib/jekyll/convertible.rb - lib/jekyll/drops/site_drop.rb - lib/jekyll/drops/unified_payload_drop.rb - lib/jekyll/page_without_a_file.rb # Performance cops # ---------------------------------------- Performance/AncestorsInclude: Enabled: false Performance/ArraySemiInfiniteRangeSlice: Enabled: true Performance/BigDecimalWithNumericArgument: Enabled: true Performance/BlockGivenWithExplicitBlock: Enabled: true Performance/ChainArrayAllocation: Enabled: true Performance/CollectionLiteralInLoop: Enabled: true Performance/ConstantRegexp: Enabled: true Performance/MapCompact: Enabled: true Performance/MapMethodChain: Enabled: true Performance/MethodObjectAsBlock: Enabled: true Performance/RedundantEqualityComparisonBlock: Enabled: false Performance/RedundantSortBlock: Enabled: true Performance/RedundantSplitRegexpArgument: Enabled: true Performance/RedundantStringChars: Enabled: true Performance/ReverseFirst: Enabled: true Performance/SortReverse: Enabled: false Performance/Squeeze: Enabled: true Performance/StringIdentifierArgument: Enabled: true Performance/StringInclude: Enabled: true Exclude: - lib/jekyll/utils/platforms.rb Performance/Sum: Enabled: true # Security cops # ---------------------------------------- Security/CompoundHash: Enabled: true Security/IoMethods: Enabled: true Security/MarshalLoad: Exclude: - lib/jekyll/regenerator.rb - test/**/*.rb Security/YAMLLoad: Exclude: - features/**/*.rb - test/**/*.rb # Style cops # ---------------------------------------- Style/AccessModifierDeclarations: Enabled: false Style/AccessorGrouping: Enabled: true Style/Alias: EnforcedStyle: prefer_alias_method Style/AndOr: Severity: error Style/ArgumentsForwarding: Enabled: false Style/ArrayCoercion: Enabled: true Style/ArrayIntersect: Enabled: true Style/BisectedAttrAccessor: Enabled: true Style/CaseLikeIf: Enabled: true Style/ClassAndModuleChildren: Exclude: - test/**/*.rb Style/ClassEqualityComparison: Enabled: true Style/CollectionCompact: Enabled: true Style/CombinableLoops: Enabled: true Style/ConcatArrayLiterals: Enabled: true Style/DirEmpty: Enabled: true Style/DocumentDynamicEvalDefinition: Enabled: true Style/Documentation: Enabled: false Style/DoubleNegation: Enabled: false Style/EmptyHeredoc: Enabled: true Style/EndlessMethod: Enabled: true Style/EnvHome: Enabled: true Style/ExactRegexpMatch: Enabled: true Style/ExplicitBlockArgument: Enabled: false Style/ExponentialNotation: Enabled: true Style/FetchEnvVar: Enabled: false Style/FileEmpty: Enabled: true Style/FileRead: Enabled: false Style/FileWrite: Enabled: true Style/FormatStringToken: Exclude: - lib/jekyll/liquid_renderer/table.rb - lib/jekyll/profiler.rb - lib/jekyll/utils/ansi.rb Style/FrozenStringLiteralComment: EnforcedStyle: always Style/GlobalStdStream: Enabled: true Style/GuardClause: Enabled: false Style/HashAsLastArrayItem: Enabled: true Style/HashConversion: Enabled: true Style/HashEachMethods: Enabled: true Style/HashExcept: Enabled: true Style/HashLikeCase: Enabled: true Style/HashSyntax: EnforcedStyle: hash_rockets Severity: error Style/HashTransformKeys: Enabled: false Style/HashTransformValues: Enabled: true Style/IfWithBooleanLiteralBranches: Enabled: true Style/KeywordParametersOrder: Enabled: true Style/MagicCommentFormat: Enabled: true Style/MapCompactWithConditionalBlock: Enabled: true Style/MapToHash: Enabled: true Style/MinMaxComparison: Enabled: true Style/MixinUsage: Exclude: - test/helper.rb Style/ModuleFunction: Enabled: false Style/MultilineTernaryOperator: Severity: error Style/NegatedIfElseCondition: Enabled: true Style/NestedFileDirname: Enabled: true Style/NilLambda: Enabled: true Style/ObjectThen: Enabled: true Style/OperatorMethodCall: Enabled: true Style/OptionalBooleanParameter: Enabled: true Exclude: - lib/jekyll/log_adapter.rb Style/PercentLiteralDelimiters: PreferredDelimiters: "%Q": "{}" "%W": "()" "%q": "{}" "%r": "!!" "%s": "()" "%w": "()" "%x": "()" Style/QuotedSymbols: Enabled: true Style/RedundantArgument: Enabled: true Style/RedundantArrayConstructor: Enabled: true Style/RedundantAssignment: Enabled: true Style/RedundantConstantBase: Enabled: true Style/RedundantCurrentDirectoryInPath: Enabled: true Style/RedundantDoubleSplatHashBraces: Enabled: true Style/RedundantEach: Enabled: true Style/RedundantFetchBlock: Enabled: false Style/RedundantFileExtensionInRequire: Enabled: true Style/RedundantFilterChain: Enabled: true Style/RedundantHeredocDelimiterQuotes: Enabled: true Style/RedundantInitialize: Enabled: true Exclude: - lib/jekyll/plugin.rb Style/RedundantLineContinuation: Enabled: true Style/RedundantRegexpArgument: Enabled: true Style/RedundantRegexpCharacterClass: Enabled: true Style/RedundantRegexpConstructor: Enabled: true Style/RedundantRegexpEscape: Enabled: true Style/RedundantSelfAssignment: Enabled: true Style/RedundantSelfAssignmentBranch: Enabled: true Style/RedundantStringEscape: Enabled: true Style/RegexpLiteral: EnforcedStyle: percent_r Style/RescueModifier: Enabled: false Style/ReturnNilInPredicateMethodDefinition: Enabled: true Style/SafeNavigation: Exclude: - lib/jekyll/document.rb - lib/jekyll/page.rb Style/SignalException: EnforcedStyle: only_raise Style/SingleArgumentDig: Enabled: true Style/SingleLineDoEndBlock: Enabled: true Style/SlicingWithRange: Enabled: false Style/SoleNestedConditional: Enabled: true Style/StringChars: Enabled: true Style/StringConcatenation: Enabled: true Exclude: - lib/jekyll/commands/*.rb - test/**/*.rb Style/StringLiterals: EnforcedStyle: double_quotes Style/StringLiteralsInInterpolation: EnforcedStyle: double_quotes Style/SwapValues: Enabled: true Style/SymbolArray: EnforcedStyle: brackets Style/TrailingCommaInArrayLiteral: EnforcedStyleForMultiline: consistent_comma Style/TrailingCommaInHashLiteral: EnforcedStyleForMultiline: consistent_comma