postmodern/command_kit.rb

View on GitHub
.rubocop.yml

Summary

Maintainability
Test Coverage
AllCops:
  NewCops: enable
  SuggestExtensions: false
  TargetRubyVersion: 2.7

#
# our rules
#

Layout/FirstArrayElementIndentation: { Exclude: ['spec/**/*'] }
Layout/LineLength: { Enabled: false }
Layout/SpaceAroundEqualsInParameterDefault: { EnforcedStyle: no_space }
Lint/ConstantDefinitionInBlock: { Exclude: ['spec/**/*'] }
Metrics: { Enabled: false }
Style/SymbolArray: { EnforcedStyle: brackets }
Style/IfInsideElse: { Enabled: false } # Offense count: 1
Style/PercentLiteralDelimiters:
  Enabled: true
  PreferredDelimiters:
    default: '{}'
    '%i': '[]'
    '%I': '[]'
    '%w': '[]'
    '%W': '[]'
Style/UnlessElse: { Enabled: false }

#
# rules that are in flux
#

# consider enabling these and autocorrecting?
# Layout/SpaceAfterComma
# Layout/SpaceAroundKeyword
# Layout/SpaceBeforeComma
# Layout/SpaceInsideHashLiteralBraces
# Layout/SpaceInsideParens
# Layout/TrailingWhitespace
# Lint/UnreachableLoop
# Lint/UnusedBlockArgument
# Style/ClassCheck
# Style/Documentation
# Style/ExpandPathArguments
# Style/GlobalStdStream
# Style/HashSyntax
# Style/KeywordParametersOrder
# Style/MethodCallWithoutArgsParentheses
# Style/MutableConstant
# Style/QuotedSymbols: { EnforcedStyle: double_quotes }
# Style/RedundantReturn
# Style/SafeNavigation
# Style/SpecialGlobalVars
# Style/StringLiterals: { EnforcedStyle: double_quotes }
# Style/WordArray

# these have been fixed
# Gemspec/DuplicatedAssignment: { Enabled: false } # Offense count: 1
# Layout/ElseAlignment: { Enabled: false } # Offense count: 1
# Layout/EndAlignment: { Enabled: false } # Offense count: 1
# Lint/DuplicateMethods: { Enabled: false } # Offense count: 1
# Lint/UselessAssignment: { Enabled: false } # Offense count: 1
# Style/Encoding: { Enabled: false } # Offense count: 2
# Style/RedundantBegin: { Enabled: false } # Offense count: 2
# Style/RedundantInterpolation: { Enabled: false } # Offense count: 1
# Style/TrailingCommaInArrayLiteral: { Enabled: false } # Offense count: 1

#
# This list was generated with:
# bundle exec rubocop --auto-gen-config --exclude-limit 1
#

# > 10 violations
Layout/AssignmentIndentation: { Enabled: false } # Offense count: 11
Layout/EmptyLinesAroundClassBody: { Enabled: false } # Offense count: 76
Layout/HashAlignment: { Enabled: false } # Offense count: 28
Layout/SpaceAfterComma: { Enabled: false } # Offense count: 141
Layout/SpaceInsideHashLiteralBraces: { Enabled: false } # Offense count: 57
Layout/TrailingWhitespace: { Enabled: false } # Offense count: 50
Naming/RescuedExceptionsVariableName: { Enabled: false } # Offense count: 11
Style/BlockDelimiters: { Enabled: false } # Offense count: 17
Style/ClassCheck: { Enabled: false } # Offense count: 10
Style/ClassEqualityComparison: { Enabled: false } # Offense count: 16
Style/GlobalStdStream: { Enabled: false } # Offense count: 13
Style/GuardClause: { Enabled: false } # Offense count: 10
Style/IfUnlessModifier: { Enabled: false } # Offense count: 13
Style/MethodCallWithoutArgsParentheses: { Enabled: false } # Offense count: 10
Style/SpecialGlobalVars: { Enabled: false } # Offense count: 28
Style/StringLiterals: { Enabled: false } # Offense count: 774
Lint/ElseLayout: { Enabled: false } # Offense count: 22

# < 10 violations
Layout/EmptyLinesAroundModuleBody: { Enabled: false } # Offense count: 5
Layout/ExtraSpacing: { Enabled: false } # Offense count: 6
Layout/FirstHashElementIndentation: { Enabled: false } # Offense count: 4
Layout/ParameterAlignment: { Enabled: false } # Offense count: 9
Layout/SpaceAroundKeyword: { Enabled: false } # Offense count: 7
Layout/SpaceBeforeComma: { Enabled: false } # Offense count: 4
Layout/SpaceInsideParens: { Enabled: false } # Offense count: 4
Lint/EmptyClass: { Enabled: false } # Offense count: 3
Lint/SuppressedException: { Enabled: false } # Offense count: 4
Lint/UnusedMethodArgument: { Enabled: false } # Offense count: 5
Style/AccessorGrouping: { Enabled: false } # Offense count: 7
Style/Documentation: { Enabled: false } # Offense count: 3
Style/ExpandPathArguments: { Enabled: false } # Offense count: 8
Style/HashSyntax: { Exclude: ['Rakefile'] } # Offense count: 3
Style/KeywordParametersOrder: { Enabled: false } # Offense count: 8
Style/Lambda: { Enabled: false } # Offense count: 3
Style/MutableConstant: { Enabled: false } # Offense count: 4
Style/RaiseArgs: { Enabled: false } # Offense count: 4
Style/RedundantReturn: { Enabled: false } # Offense count: 7
Style/SafeNavigation: { Enabled: false } # Offense count: 5
Style/StringConcatenation: { Enabled: false } # Offense count: 8
Style/WordArray: { Enabled: false } # Offense count: 4

# 1 or 2 violations
Layout/ArgumentAlignment: { Enabled: false } # Offense count: 1
Layout/BlockAlignment: { Enabled: false } # Offense count: 1
Layout/IndentationWidth: { Enabled: false } # Offense count: 2
Layout/SpaceAroundOperators: { Enabled: false } # Offense count: 1
Layout/SpaceBeforeBlockBraces: { Enabled: false } # Offense count: 1
Lint/MissingSuper: { Enabled: false } # Offense count: 2
Lint/RescueException: { Enabled: false } # Offense count: 1
Lint/UnreachableLoop: { Enabled: false } # Offense count: 1
Lint/UnusedBlockArgument: { Enabled: false } # Offense count: 1
Naming/MethodParameterName: { Enabled: false } # Offense count: 1
Style/EmptyMethod: { Enabled: false } # Offense count: 2
Style/HashConversion: { Enabled: false } # Offense count: 1
Style/MultilineMemoization: { Enabled: false } # Offense count: 1
Style/NumericPredicate: { Enabled: false } # Offense count: 1
Style/OptionalArguments: { Enabled: false } # Offense count: 1
Style/ParenthesesAroundCondition: { Enabled: false } # Offense count: 1
Style/PreferredHashMethods: { Enabled: false } # Offense count: 1
Style/QuotedSymbols: { Enabled: false } # Offense count: 1
Style/RedundantException: { Enabled: false } # Offense count: 1
Style/RedundantRegexpEscape: { Enabled: false } # Offense count: 1
Style/RegexpLiteral: { Enabled: false } # Offense count: 1
Style/RescueStandardError: { Enabled: false } # Offense count: 1
Style/SoleNestedConditional: { Enabled: false } # Offense count: 1
Style/TrailingCommaInHashLiteral: { Enabled: false } # Offense count: 2

# enforce frozen_string_literal for lib/, but not examples/ or spec/.
Style/FrozenStringLiteralComment:
  Exclude:
    - 'examples/{**/,}*.rb'
    - 'spec/spec_helper.rb'
    - 'spec/{**/,}*_spec.rb'

# rubocop cannot tell that rubygems_mfa_required is enabled in gemspec.yml
Gemspec/RequireMFA: { Enabled: false }

# make an exception for our gemspec code
Gemspec/DuplicatedAssignment:
  Exclude:
    - 'command_kit.gemspec'

Bundler/OrderedGems: { Enabled: false }

# rubocup is not aware of vertical alignment of matrixes (Array of Arrays).
Layout/SpaceInsideArrayLiteralBrackets: { Enabled: false }

Naming/HeredocDelimiterNaming: { Enabled: false }

# I prefer to use explicit parenthesis for compound logical statements
Style/RedundantParentheses: { Enabled: false }