inherit_from: ./.rubocop_shared.yml # enable all formulae audits FormulaAudit: Enabled: true # enable all formulae strict audits FormulaAuditStrict: Enabled: true # enable all pending rubocops AllCops: NewCops: enable # don't allow cops to be disabled in formulae Style/DisableCopsWithinSourceCodeDirective: Enabled: true # make our hashes consistent Layout/HashAlignment: EnforcedHashRocketStyle: table EnforcedColonStyle: table # `system` is a special case and aligns on second argument Layout/ArgumentAlignment: Enabled: false # this is a bit less "floaty" Layout/CaseIndentation: EnforcedStyle: end # this is a bit less "floaty" Layout/EndAlignment: EnforcedStyleAlignWith: start_of_line # conflicts with DSL-style path concatenation with `/` Layout/SpaceAroundOperators: Enabled: false # layout is not configurable (https://github.com/rubocop-hq/rubocop/issues/6254). Layout/RescueEnsureAlignment: Enabled: false # favour parens-less DSL-style arguments Lint/AmbiguousBlockAssociation: Enabled: false # so many of these in formulae and can't be autocorrected # TODO: fix these as `ruby -w` complains about them. Lint/AmbiguousRegexpLiteral: Enabled: false # so many of these in formulae and can't be autocorrected Lint/ParenthesesAsGroupedExpression: Enabled: false # most metrics don't make sense to apply for formulae/taps Metrics/AbcSize: Enabled: false Metrics/ClassLength: Enabled: false Metrics/CyclomaticComplexity: Enabled: false Metrics/MethodLength: Enabled: false Metrics/ModuleLength: Enabled: false Metrics/PerceivedComplexity: Enabled: false # GitHub diff UI wraps beyond 118 characters Layout/LineLength: Max: 118 # ignore manpage comments and long single-line strings IgnoredPatterns: ['#: ', ' url "', ' mirror "', ' plist_options :'] # most of our APIs are internal so don't require docs Style/Documentation: Enabled: false # don't want this for formulae but re-enabled for Library/Homebrew Style/FrozenStringLiteralComment: Enabled: false # potential for errors in formulae too high with this Style/GuardClause: Enabled: false # depends_on a: :b looks weird in formulae. Style/HashSyntax: EnforcedStyle: hash_rockets Exclude: - '**/Guardfile' - '**/cmd/**/*.rb' - '**/lib/**/*.rb' - '**/spec/**/*.rb' # autocorrectable and more readable Style/HashEachMethods: Enabled: true Style/HashTransformKeys: Enabled: true Style/HashTransformValues: Enabled: true # ruby style guide favorite Style/StringLiterals: EnforcedStyle: double_quotes # consistency with above Style/StringLiteralsInInterpolation: EnforcedStyle: double_quotes # make things a bit easier to read Style/TernaryParentheses: EnforcedStyle: require_parentheses_when_complex # a bit confusing to non-Rubyists but useful for longer arrays Style/WordArray: MinSize: 4