blob: 944f00a35efc1c8295fca275db83728444198f05 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
  | 
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
# 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
# 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/TrailingComma:
  EnforcedStyleForMultiline: comma
  |