.rubocop.yml in skippy-0.4.3.a vs .rubocop.yml in skippy-0.5.0.a

- old
+ new

@@ -1,19 +1,24 @@ inherit_from: .rubocop_todo.yml +require: + - rubocop-minitest + - rubocop-rake + AllCops: Exclude: - 'bin/**/*' - 'exe/**/*' - 'fixtures/**/*' - 'tmp/**/*' - 'vendor/**/*' DisplayCopNames: true -Layout/AlignParameters: +Layout/ArgumentAlignment: EnforcedStyle: with_fixed_indentation + # IndentationWidth: 2 # It's ok to have more than one empty line to create a 'paragrapth'. Layout/EmptyLines: Enabled: false @@ -25,21 +30,29 @@ Layout/EmptyLinesAroundModuleBody: Enabled: false # Normally one line in between, but two allowed for "paragraphs". Layout/EmptyLineBetweenDefs: + AllowAdjacentOneLineDefs: true NumberOfEmptyLines: [1, 2] # Rely on Git to normalize end of lines. Layout/EndOfLine: Enabled: false # Add lines as needed. Layout/EmptyLinesAroundBlockBody: Enabled: false +Layout/LineLength: + Exclude: + - features/step_definitions/**/* +Layout/ParameterAlignment: + EnforcedStyle: with_fixed_indentation + + Naming/RescuedExceptionsVariableName: PreferredName: error Metrics/AbcSize: @@ -53,23 +66,23 @@ # Too noisy. Metrics/CyclomaticComplexity: Enabled: false -Metrics/LineLength: - Exclude: - - features/step_definitions/**/* - Metrics/MethodLength: Exclude: - test/**/* # Too noisy. Metrics/PerceivedComplexity: Enabled: false +# Nah, sometimes easier to read with accessors having separate grouping. +Style/AccessorGrouping: + Enabled: false + # Prefer { ... } over do ... end except for control flow and # method defintions. Unfortunatly, no cop configuration for this. # https://github.com/chneukirchen/styleguide/blob/e60de37b478d3f892f6985a58d573016f33f0269/RUBY-STYLE#L63-L67 Style/BlockDelimiters: EnforcedStyle: semantic @@ -107,10 +120,17 @@ Enabled: false Style/ModuleFunction: Enabled: false +# Excluding some files that copies the Thor implementation. +# TODO: Investigate if Thor changed their implementation. +Style/OptionalBooleanParameter: + Exclude: + - lib/skippy/cli.rb + - lib/skippy/command.rb + # %w and %i etc isn't really intuitive unless you are really familiar with the # syntax. %w seems used often enough. But [:symbol, :foo] reads clearer than # %i(symbol foo). Style/SymbolArray: Enabled: False @@ -119,5 +139,137 @@ Style/TrailingCommaInArrayLiteral: EnforcedStyleForMultiline: consistent_comma Style/TrailingCommaInHashLiteral: EnforcedStyleForMultiline: consistent_comma + + +# Not testing computed values, but serialized values. +# Ignoring floating point tolerance is fine (and wanted) in this case. +Minitest/AssertInDelta: + Enabled: false + +# Too many false positives. +Minitest/AssertWithExpectedArgument: + Enabled: false + +# No such thing as too many assertions. +Minitest/MultipleAssertions: + Enabled: false + + +################################################################################ +# Enabling new cops: + +Gemspec/DateAssignment: # new in 1.10 + Enabled: true +Layout/LineEndStringConcatenationIndentation: # new in 1.18 + Enabled: true +Layout/SpaceBeforeBrackets: # new in 1.7 + Enabled: true +Lint/AmbiguousAssignment: # new in 1.7 + Enabled: true +Lint/AmbiguousOperatorPrecedence: # new in 1.21 + Enabled: true +Lint/AmbiguousRange: # new in 1.19 + Enabled: true +Lint/DeprecatedConstants: # new in 1.8 + Enabled: true +Lint/DuplicateBranch: # new in 1.3 + 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/LambdaWithoutLiteralBlock: # new in 1.8 + 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/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 +Security/IoMethods: # new in 1.22 + Enabled: true +Style/ArgumentsForwarding: # new in 1.1 + Enabled: true +Style/CollectionCompact: # new in 1.2 + Enabled: true +Style/DocumentDynamicEvalDefinition: # new in 1.1 + Enabled: true +Style/EndlessMethod: # new in 1.8 + 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/MultilineInPatternThen: # new in 1.16 + Enabled: true +Style/NegatedIfElseCondition: # new in 1.2 + 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/QuotedSymbols: # new in 1.16 + Enabled: true +Style/RedundantArgument: # new in 1.4 + Enabled: true +Style/RedundantSelfAssignmentBranch: # new in 1.19 + Enabled: true +Style/SelectByRegexp: # new in 1.22 + Enabled: true +Style/StringChars: # new in 1.12 + Enabled: true +Style/SwapValues: # new in 1.1 + Enabled: true + +Minitest/AssertionInLifecycleHook: # new in 0.10 + Enabled: true +Minitest/AssertKindOf: # new in 0.10 + Enabled: true +Minitest/AssertOutput: # new in 0.10 + Enabled: true +Minitest/AssertPathExists: # new in 0.10 + Enabled: true +Minitest/AssertSilent: # new in 0.10 + Enabled: true +Minitest/LiteralAsActualArgument: # new in 0.10 + Enabled: true +Minitest/RefuteInDelta: # new in 0.10 + Enabled: true +Minitest/RefuteKindOf: # new in 0.10 + Enabled: true +Minitest/RefutePathExists: # new in 0.10 + Enabled: true +Minitest/TestMethodName: # new in 0.10 + Enabled: true +Minitest/UnreachableAssertion: # new in 0.14 + Enabled: true +Minitest/UnspecifiedException: # new in 0.10 + Enabled: true