-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.rubocop.yml
181 lines (138 loc) · 3.13 KB
/
.rubocop.yml
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
# The behavior of RuboCop can be controlled via the .rubocop.yml
# configuration file. It makes it possible to enable/disable
# certain cops (checks) and to alter their behavior if they accept
# any parameters. The file can be placed either in your home
# directory or in some project directory.
#
# RuboCop will start looking for the configuration file in the directory
# where the inspected file is and continue its way up to the root directory.
#
# See https://docs.rubocop.org/rubocop/configuration
require:
- rubocop-minitest
- rubocop-packaging
- rubocop-performance
# General
AllCops:
NewCops: enable
SuggestExtensions: false
# Layout
Layout/BlockAlignment:
Enabled: true
EnforcedStyleAlignWith: start_of_block
Layout/ClassStructure:
Enabled: true
Layout/DotPosition:
Enabled: true
EnforcedStyle: leading
Layout/FirstArrayElementIndentation:
Enabled: true
EnforcedStyle: consistent
Layout/FirstHashElementIndentation:
Enabled: true
EnforcedStyle: consistent
Layout/HashAlignment:
Enabled: true
EnforcedColonStyle: key
EnforcedLastArgumentHashStyle: always_inspect
Layout/LineEndStringConcatenationIndentation:
Enabled: true
EnforcedStyle: aligned
Layout/LineLength:
Enabled: true
Max: 120
Layout/MultilineArrayLineBreaks:
Enabled: true
Layout/MultilineAssignmentLayout:
Enabled: false
Layout/MultilineHashKeyLineBreaks:
Enabled: true
Layout/MultilineMethodArgumentLineBreaks:
Enabled: true
Layout/MultilineMethodCallIndentation:
Enabled: true
EnforcedStyle: indented_relative_to_receiver
Layout/MultilineOperationIndentation:
Enabled: true
EnforcedStyle: indented
Layout/ParameterAlignment:
Enabled: true
EnforcedStyle: with_first_parameter
Layout/RedundantLineBreak:
Enabled: true
InspectBlocks: false
Layout/SingleLineBlockChain:
Enabled: false
Layout/SpaceBeforeBrackets:
Enabled: true
Layout/TrailingEmptyLines:
Enabled: true
EnforcedStyle: final_newline
# Lint
Lint/AmbiguousAssignment:
Enabled: true
Lint/AmbiguousOperatorPrecedence:
Enabled: true
Lint/AmbiguousRange:
Enabled: true
# Metrics
Metrics/AbcSize:
Max: 25
Exclude:
- "test/**/*"
Metrics/ClassLength:
Max: 225
CountAsOne:
- array
- hash
- heredoc
Exclude:
- "test/**/*"
Metrics/MethodLength:
Max: 20
CountAsOne:
- array
- hash
- heredoc
Exclude:
- "test/**/*"
# Minitest
Minitest/AssertPredicate:
Enabled: false
Minitest/EmptyLineBeforeAssertionMethods:
Enabled: false
Minitest/MultipleAssertions:
Max: 10
Minitest/RefutePredicate:
Enabled: false
# Naming
Naming/InclusiveLanguage:
Enabled: true
Naming/MethodParameterName:
AllowedNames:
- n
Naming/VariableNumber:
EnforcedStyle: snake_case
# Style
Style/AndOr:
EnforcedStyle: always
Style/ArrayCoercion:
Enabled: true
Style/CollectionCompact:
Enabled: true
Style/ConstantVisibility:
Enabled: true
IgnoreModules: true
Style/Documentation:
Exclude:
- "test/**/*"
Style/DocumentationMethod:
Enabled: true
Exclude:
- "test/**/*"
Style/SelectByRegexp:
Enabled: false
Style/SwapValues:
Enabled: true
Style/TrailingCommaInArrayLiteral:
EnforcedStyleForMultiline: comma