AllCops: Exclude: - 'Homebrew/vendor/**/*' - 'Homebrew/test/vendor/**/*' # 1.8-style hash keys Style/HashSyntax: EnforcedStyle: hash_rockets # ruby style guide favorite Style/StringLiterals: EnforcedStyle: double_quotes # consistency with above Style/StringLiteralsInInterpolation: EnforcedStyle: double_quotes # percent-x is allowed for multiline Style/CommandLiteral: EnforcedStyle: mixed # paths abound, easy escape Style/RegexpLiteral: EnforcedStyle: slashes # our current conditional style is established, clear and # requiring users to change that now would be confusing. Style/ConditionalAssignment: Enabled: false # no metrics for formulas Metrics/AbcSize: Enabled: false Metrics/CyclomaticComplexity: Enabled: false Metrics/MethodLength: Enabled: false Metrics/ClassLength: Enabled: false Metrics/PerceivedComplexity: Enabled: false # we often need very long lines Metrics/LineLength: Enabled: false # formulas have no mandatory doc Style/Documentation: Enabled: false # favor parens-less DSL-style arguments Lint/AmbiguousOperator: Enabled: false Lint/AmbiguousRegexpLiteral: Enabled: false Lint/AssignmentInCondition: Enabled: false Lint/ParenthesesAsGroupedExpression: Enabled: false # compact style Style/EmptyLineBetweenDefs: AllowAdjacentOneLineDefs: true # port numbers and such tech stuff Style/NumericLiterals: Enabled: false # zero-prefixed octal literals are just too widely used (and mostly understood) Style/NumericLiteralPrefix: EnforcedOctalStyle: zero_only # consistency and readability when faced with string interpolation Style/PercentLiteralDelimiters: PreferredDelimiters: '%': '()' '%i': '()' '%q': '()' '%Q': '()' '%r': '{}' '%s': '()' '%w': '[]' '%W': '[]' '%x': '()' # conflicts with DSL-style path concatenation with `/` Style/SpaceAroundOperators: Enabled: false # not a problem for typical shell users Style/SpecialGlobalVars: Enabled: false # `system` is a special case and aligns on second argument Style/AlignParameters: Enabled: false # counterproductive in formulas, notably within the install method Style/GuardClause: Enabled: false Style/IfUnlessModifier: Enabled: false # dashes in filenames are typical # TODO: enforce when rubocop has fixed this # https://github.com/bbatsov/rubocop/issues/1545 Style/FileName: Enabled: false # no percent word array, being friendly to non-ruby users # TODO: enforce when rubocop has fixed this # https://github.com/bbatsov/rubocop/issues/1543 Style/WordArray: Enabled: false Style/UnneededCapitalW: Enabled: false # we use raise, not fail Style/SignalException: EnforcedStyle: only_raise # we prefer compact if-else-end/case-when-end alignment Lint/EndAlignment: AlignWith: variable Style/CaseIndentation: IndentWhenRelativeTo: end # we prefer Perl-style regex back references Style/PerlBackrefs: Enabled: false # this is required for Ruby 1.8 Style/DotPosition: EnforcedStyle: trailing # makes diffs nicer Style/TrailingCommaInArguments: EnforcedStyleForMultiline: no_comma Style/TrailingCommaInLiteral: EnforcedStyleForMultiline: comma