.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