eligible 2.6.0 → 2.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 03be1f1a914b3d75b9f6d41ca16eba33809b0088
4
- data.tar.gz: 22f6b67282dd9c4f7ff967061ff68b52a3688ee5
3
+ metadata.gz: 3a05ae8ed310f92bfdb9169633be20e586d904bf
4
+ data.tar.gz: 7bc7e0bce25b7e2584414c6c63b08f85740be705
5
5
  SHA512:
6
- metadata.gz: 9376ed2a7a179a2cbc31358e63c82030e585ab4a95ad0aa13ee7e27d5852e28ba915f6ebb09858abfd84db75ebe4fa6c7827c77e1df3536c616debace3393ea9
7
- data.tar.gz: 69f16379d548aed3ba8e554c5d5362c7edd7bc9e7659eacb47b754901453d4a635fe65b645e2685b30ce8ffc4f5371e9a99cb34dca6c9761cc5a7cdcde30b604
6
+ metadata.gz: 2bac9428455a3ca9b8361f75d30d79b0b61ef590c6778a4f4a7f2f36b7afec21b72c2f89eed0364e94e2a907c019966ab93d8892135cf4941df5ee71f52dfb4f
7
+ data.tar.gz: c42fe8b8b825e9dd3227d86292fae9f7953e7ddd72e1703faafcda5cd1d876e791c54ad78814cc19facf2e666a2999d4ba6a451a5c37a525da7678256e90b503
@@ -1,1166 +1,1158 @@
1
- # Disable all checks not explicitly referenced in this file
2
- # This is used to easily disable Style/* checks
3
1
  AllCops:
4
2
  DisabledByDefault: true
5
3
 
6
- ################## STYLE #################################
7
-
8
- Style/AccessModifierIndentation:
9
- Description: Check indentation of private/protected visibility modifiers.
10
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#indent-public-private-protected'
11
- Enabled: false
12
-
13
- Style/AccessorMethodName:
14
- Description: Check the naming of accessor methods for get_/set_.
15
- Enabled: false
16
-
17
- Style/Alias:
18
- Description: 'Use alias_method instead of alias.'
19
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#alias-method'
20
- Enabled: false
4
+ #################### Lint ################################
21
5
 
22
- Style/AlignArray:
6
+ Lint/AmbiguousOperator:
23
7
  Description: >-
24
- Align the elements of an array literal if they span more than
25
- one line.
26
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#align-multiline-arrays'
8
+ Checks for ambiguous operators in the first argument of a
9
+ method invocation without parentheses.
10
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parens-as-args'
27
11
  Enabled: true
28
12
 
29
- Style/AlignHash:
13
+ Lint/AmbiguousRegexpLiteral:
30
14
  Description: >-
31
- Align the elements of a hash literal if they span more than
32
- one line.
15
+ Checks for ambiguous regexp literals in the first argument of
16
+ a method invocation without parenthesis.
33
17
  Enabled: true
34
18
 
35
- Style/AlignParameters:
36
- Description: >-
37
- Align the parameters of a method call if they span more
38
- than one line.
39
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-double-indent'
19
+ Lint/AssignmentInCondition:
20
+ Description: "Don't use assignment in conditions."
21
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#safe-assignment-in-condition'
40
22
  Enabled: true
41
23
 
42
- Style/AndOr:
43
- Description: 'Use &&/|| instead of and/or.'
44
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-and-or-or'
24
+ Lint/BlockAlignment:
25
+ Description: 'Align block ends correctly.'
45
26
  Enabled: true
46
27
 
47
- Style/ArrayJoin:
48
- Description: 'Use Array#join instead of Array#*.'
49
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#array-join'
28
+ Lint/CircularArgumentReference:
29
+ Description: "Don't refer to the keyword argument in the default value."
50
30
  Enabled: true
51
31
 
52
- Style/AsciiComments:
53
- Description: 'Use only ascii symbols in comments.'
54
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#english-comments'
32
+ Lint/ConditionPosition:
33
+ Description: >-
34
+ Checks for condition placed in a confusing position relative to
35
+ the keyword.
36
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#same-line-condition'
55
37
  Enabled: true
56
38
 
57
- Style/AsciiIdentifiers:
58
- Description: 'Use only ascii symbols in identifiers.'
59
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#english-identifiers'
39
+ Lint/Debugger:
40
+ Description: 'Check for debugger calls.'
60
41
  Enabled: true
61
42
 
62
- Style/Attr:
63
- Description: 'Checks for uses of Module#attr.'
64
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#attr'
65
- Enabled: false
66
-
67
- Style/BeginBlock:
68
- Description: 'Avoid the use of BEGIN blocks.'
69
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-BEGIN-blocks'
43
+ Lint/DefEndAlignment:
44
+ Description: 'Align ends corresponding to defs correctly.'
70
45
  Enabled: true
71
46
 
72
- Style/BarePercentLiterals:
73
- Description: 'Checks if usage of %() or %Q() matches configuration.'
74
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-q-shorthand'
75
- Enabled: false
76
-
77
- Style/BlockComments:
78
- Description: 'Do not use block comments.'
79
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-block-comments'
80
- Enabled: false
47
+ Lint/DeprecatedClassMethods:
48
+ Description: 'Check for deprecated class method calls.'
49
+ Enabled: true
81
50
 
82
- Style/BlockEndNewline:
83
- Description: 'Put end statement of multiline block on its own line.'
51
+ Lint/DuplicateMethods:
52
+ Description: 'Check for duplicate methods calls.'
84
53
  Enabled: true
85
54
 
86
- Style/BlockDelimiters:
87
- Description: >-
88
- Avoid using {...} for multi-line blocks (multiline chaining is
89
- always ugly).
90
- Prefer {...} over do...end for single-line blocks.
91
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#single-line-blocks'
92
- Enabled: false
55
+ Lint/EachWithObjectArgument:
56
+ Description: 'Check for immutable argument given to each_with_object.'
57
+ Enabled: true
93
58
 
94
- Style/BracesAroundHashParameters:
95
- Description: 'Enforce braces style around hash parameters.'
96
- Enabled: false
59
+ Lint/ElseLayout:
60
+ Description: 'Check for odd code arrangement in an else block.'
61
+ Enabled: true
97
62
 
98
- Style/CaseEquality:
99
- Description: 'Avoid explicit use of the case equality operator(===).'
100
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-case-equality'
63
+ Lint/EmptyEnsure:
64
+ Description: 'Checks for empty ensure block.'
101
65
  Enabled: true
102
66
 
103
- Style/CaseIndentation:
104
- Description: 'Indentation of when in a case/when/[else/]end.'
105
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#indent-when-to-case'
106
- Enabled: false
67
+ Lint/EmptyInterpolation:
68
+ Description: 'Checks for empty string interpolation.'
69
+ Enabled: true
107
70
 
108
- Style/CharacterLiteral:
109
- Description: 'Checks for uses of character literals.'
110
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-character-literals'
71
+ Lint/EndAlignment:
72
+ Description: 'Align ends correctly.'
111
73
  Enabled: true
112
74
 
113
- Style/ClassAndModuleCamelCase:
114
- Description: 'Use CamelCase for classes and modules.'
115
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#camelcase-classes'
75
+ Lint/EndInMethod:
76
+ Description: 'END blocks should not be placed inside method definitions.'
116
77
  Enabled: true
117
78
 
118
- Style/ClassAndModuleChildren:
119
- Description: 'Checks style of children classes and modules.'
120
- Enabled: false
79
+ Lint/EnsureReturn:
80
+ Description: 'Do not use return in an ensure block.'
81
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-return-ensure'
82
+ Enabled: true
121
83
 
122
- Style/ClassCheck:
123
- Description: 'Enforces consistent use of `Object#is_a?` or `Object#kind_of?`.'
84
+ Lint/Eval:
85
+ Description: 'The use of eval represents a serious security risk.'
124
86
  Enabled: true
125
87
 
126
- Style/ClassMethods:
127
- Description: 'Use self when defining module/class methods.'
128
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#def-self-class-methods'
88
+ Lint/FormatParameterMismatch:
89
+ Description: 'The number of parameters to format/sprint must match the fields.'
129
90
  Enabled: true
130
91
 
131
- Style/ClassVars:
132
- Description: 'Avoid the use of class variables.'
133
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-class-vars'
134
- Enabled: false
92
+ Lint/HandleExceptions:
93
+ Description: "Don't suppress exception."
94
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#dont-hide-exceptions'
95
+ Enabled: true
135
96
 
136
- Style/ClosingParenthesisIndentation:
137
- Description: 'Checks the indentation of hanging closing parentheses.'
97
+ Lint/InvalidCharacterLiteral:
98
+ Description: >-
99
+ Checks for invalid character literals with a non-escaped
100
+ whitespace character.
138
101
  Enabled: true
139
102
 
140
- Style/ColonMethodCall:
141
- Description: 'Do not use :: for method call.'
142
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#double-colons'
103
+ Lint/LiteralInCondition:
104
+ Description: 'Checks of literals used in conditions.'
143
105
  Enabled: true
144
106
 
145
- Style/CommandLiteral:
146
- Description: 'Use `` or %x around command literals.'
147
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-x'
148
- Enabled: false
107
+ Lint/LiteralInInterpolation:
108
+ Description: 'Checks for literals used in interpolation.'
109
+ Enabled: true
149
110
 
150
- Style/CommentAnnotation:
111
+ Lint/Loop:
151
112
  Description: >-
152
- Checks formatting of special comments
153
- (TODO, FIXME, OPTIMIZE, HACK, REVIEW).
154
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#annotate-keywords'
155
- Enabled: false
156
-
157
- Style/CommentIndentation:
158
- Description: 'Indentation of comments.'
159
- Enabled: false
160
-
161
- Style/ConstantName:
162
- Description: 'Constants should use SCREAMING_SNAKE_CASE.'
163
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#screaming-snake-case'
113
+ Use Kernel#loop with break rather than begin/end/until or
114
+ begin/end/while for post-loop tests.
115
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#loop-with-break'
164
116
  Enabled: true
165
117
 
166
- Style/DefWithParentheses:
167
- Description: 'Use def with parentheses when there are arguments.'
168
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#method-parens'
118
+ Lint/NestedMethodDefinition:
119
+ Description: 'Do not use nested method definitions.'
120
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-methods'
169
121
  Enabled: true
170
122
 
171
- Style/DeprecatedHashMethods:
172
- Description: 'Checks for use of deprecated Hash methods.'
173
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#hash-key'
123
+ Lint/NonLocalExitFromIterator:
124
+ Description: 'Do not use return in iterator to cause non-local exit.'
174
125
  Enabled: true
175
126
 
176
- Style/Documentation:
177
- Description: 'Document classes and non-namespace modules.'
178
- Enabled: false
127
+ Lint/ParenthesesAsGroupedExpression:
128
+ Description: >-
129
+ Checks for method calls with a space before the opening
130
+ parenthesis.
131
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parens-no-spaces'
132
+ Enabled: true
179
133
 
180
- Style/DotPosition:
181
- Description: 'Checks the position of the dot in multi-line method calls.'
182
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#consistent-multi-line-chains'
134
+ Lint/RequireParentheses:
135
+ Description: >-
136
+ Use parentheses in the method call to avoid confusion
137
+ about precedence.
183
138
  Enabled: true
184
139
 
185
- Style/DoubleNegation:
186
- Description: 'Checks for uses of double negation (!!).'
187
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-bang-bang'
188
- Enabled: false
140
+ Lint/RescueException:
141
+ Description: 'Avoid rescuing the Exception class.'
142
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-blind-rescues'
143
+ Enabled: true
189
144
 
190
- Style/EachWithObject:
191
- Description: 'Prefer `each_with_object` over `inject` or `reduce`.'
192
- Enabled: false
145
+ Lint/ShadowingOuterLocalVariable:
146
+ Description: >-
147
+ Do not use the same name as outer local variable
148
+ for block arguments or block local variables.
149
+ Enabled: true
193
150
 
194
- Style/ElseAlignment:
195
- Description: 'Align elses and elsifs correctly.'
151
+ Lint/StringConversionInInterpolation:
152
+ Description: 'Checks for Object#to_s usage in string interpolation.'
153
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-to-s'
196
154
  Enabled: true
197
155
 
198
- Style/EmptyElse:
199
- Description: 'Avoid empty else-clauses.'
156
+ Lint/UnderscorePrefixedVariableName:
157
+ Description: 'Do not use prefix `_` for a variable that is used.'
200
158
  Enabled: true
201
159
 
202
- Style/EmptyLineBetweenDefs:
203
- Description: 'Use empty lines between defs.'
204
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#empty-lines-between-methods'
160
+ Lint/UnneededDisable:
161
+ Description: >-
162
+ Checks for rubocop:disable comments that can be removed.
163
+ Note: this cop is not disabled when disabling all cops.
164
+ It must be explicitly disabled.
205
165
  Enabled: true
206
166
 
207
- Style/EmptyLines:
208
- Description: "Don't use several empty lines in a row."
167
+ Lint/UnusedBlockArgument:
168
+ Description: 'Checks for unused block arguments.'
169
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscore-unused-vars'
209
170
  Enabled: true
210
171
 
211
- Style/EmptyLinesAroundAccessModifier:
212
- Description: "Keep blank lines around access modifiers."
172
+ Lint/UnusedMethodArgument:
173
+ Description: 'Checks for unused method arguments.'
174
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscore-unused-vars'
213
175
  Enabled: true
214
176
 
215
- Style/EmptyLinesAroundBlockBody:
216
- Description: "Keeps track of empty lines around block bodies."
177
+ Lint/UnreachableCode:
178
+ Description: 'Unreachable code.'
217
179
  Enabled: true
218
180
 
219
- Style/EmptyLinesAroundClassBody:
220
- Description: "Keeps track of empty lines around class bodies."
221
- Enabled: false
181
+ Lint/UselessAccessModifier:
182
+ Description: 'Checks for useless access modifiers.'
183
+ Enabled: true
222
184
 
223
- Style/EmptyLinesAroundModuleBody:
224
- Description: "Keeps track of empty lines around module bodies."
225
- Enabled: false
185
+ Lint/UselessAssignment:
186
+ Description: 'Checks for useless assignment to a local variable.'
187
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscore-unused-vars'
188
+ Enabled: true
226
189
 
227
- Style/EmptyLinesAroundMethodBody:
228
- Description: "Keeps track of empty lines around method bodies."
190
+ Lint/UselessComparison:
191
+ Description: 'Checks for comparison of something with itself.'
229
192
  Enabled: true
230
193
 
231
- Style/EmptyLiteral:
232
- Description: 'Prefer literals to Array.new/Hash.new/String.new.'
233
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#literal-array-hash'
194
+ Lint/UselessElseWithoutRescue:
195
+ Description: 'Checks for useless `else` in `begin..end` without `rescue`.'
234
196
  Enabled: true
235
197
 
236
- Style/EndBlock:
237
- Description: 'Avoid the use of END blocks.'
238
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-END-blocks'
198
+ Lint/UselessSetterCall:
199
+ Description: 'Checks for useless setter call to a local variable.'
239
200
  Enabled: true
240
201
 
241
- Style/EndOfLine:
242
- Description: 'Use Unix-style line endings.'
243
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#crlf'
202
+ Lint/Void:
203
+ Description: 'Possible use of operator/literal/variable in void context.'
244
204
  Enabled: true
245
205
 
246
- Style/EvenOdd:
247
- Description: 'Favor the use of Fixnum#even? && Fixnum#odd?'
248
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#predicate-methods'
206
+ ###################### Metrics ####################################
207
+
208
+ Metrics/AbcSize:
209
+ Description: >-
210
+ A calculated magnitude based on number of assignments,
211
+ branches, and conditions.
212
+ Reference: 'http://c2.com/cgi/wiki?AbcMetric'
249
213
  Enabled: true
214
+ Max: 25
250
215
 
251
- Style/ExtraSpacing:
252
- Description: 'Do not use unnecessary spacing.'
216
+ Metrics/BlockNesting:
217
+ Description: 'Avoid excessive block nesting'
218
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#three-is-the-number-thou-shalt-count'
253
219
  Enabled: true
220
+ Max: 4
254
221
 
255
- Style/FileName:
256
- Description: 'Use snake_case for source file names.'
257
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#snake-case-files'
222
+ Metrics/ClassLength:
223
+ Description: 'Avoid classes longer than 250 lines of code.'
258
224
  Enabled: true
225
+ Max: 250
259
226
 
260
- Style/InitialIndentation:
227
+ Metrics/CyclomaticComplexity:
261
228
  Description: >-
262
- Checks the indentation of the first non-blank non-comment line in a file.
229
+ A complexity metric that is strongly correlated to the number
230
+ of test cases needed to validate a method.
263
231
  Enabled: true
264
232
 
265
- Style/FirstParameterIndentation:
266
- Description: 'Checks the indentation of the first parameter in a method call.'
233
+ Metrics/LineLength:
234
+ Description: 'Limit lines to 80 characters.'
235
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#80-character-limits'
267
236
  Enabled: false
268
237
 
269
- Style/FlipFlop:
270
- Description: 'Checks for flip flops'
271
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-flip-flops'
238
+ Metrics/MethodLength:
239
+ Description: 'Avoid methods longer than 30 lines of code.'
240
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#short-methods'
272
241
  Enabled: true
242
+ Max: 30
273
243
 
274
- Style/For:
275
- Description: 'Checks use of for or each in multiline loops.'
276
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-for-loops'
244
+ Metrics/ModuleLength:
245
+ Description: 'Avoid modules longer than 250 lines of code.'
277
246
  Enabled: true
247
+ Max: 250
278
248
 
279
- Style/FormatString:
280
- Description: 'Enforce the use of Kernel#sprintf, Kernel#format or String#%.'
281
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#sprintf'
249
+ Metrics/ParameterLists:
250
+ Description: 'Avoid parameter lists longer than three or four parameters.'
251
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#too-many-params'
282
252
  Enabled: true
283
253
 
284
- Style/GlobalVars:
285
- Description: 'Do not introduce global variables.'
286
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#instance-vars'
287
- Reference: 'http://www.zenspider.com/Languages/Ruby/QuickRef.html'
288
- Enabled: true
254
+ Metrics/PerceivedComplexity:
255
+ Description: >-
256
+ A complexity metric geared towards measuring complexity for a
257
+ human reader.
258
+ Enabled: false
289
259
 
290
- Style/GuardClause:
291
- Description: 'Check for conditionals that can be replaced with guard clauses'
292
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals'
293
- Enabled: true
260
+ ##################### Performance #############################
294
261
 
295
- Style/HashSyntax:
262
+ Performance/Count:
296
263
  Description: >-
297
- Prefer Ruby 1.9 hash syntax { a: 1, b: 2 } over 1.8 syntax
298
- { :a => 1, :b => 2 }.
299
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#hash-literals'
264
+ Use `count` instead of `select...size`, `reject...size`,
265
+ `select...count`, `reject...count`, `select...length`,
266
+ and `reject...length`.
300
267
  Enabled: true
301
268
 
302
- Style/IfUnlessModifier:
269
+ Performance/Detect:
303
270
  Description: >-
304
- Favor modifier if/unless usage when you have a
305
- single-line body.
306
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#if-as-a-modifier'
307
- Enabled: false
308
-
309
- Style/IfWithSemicolon:
310
- Description: 'Do not use if x; .... Use the ternary operator instead.'
311
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-semicolon-ifs'
271
+ Use `detect` instead of `select.first`, `find_all.first`,
272
+ `select.last`, and `find_all.last`.
273
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerabledetect-vs-enumerableselectfirst-code'
312
274
  Enabled: true
313
275
 
314
- Style/IndentationConsistency:
315
- Description: 'Keep indentation straight.'
276
+ Performance/FlatMap:
277
+ Description: >-
278
+ Use `Enumerable#flat_map`
279
+ instead of `Enumerable#map...Array#flatten(1)`
280
+ or `Enumberable#collect..Array#flatten(1)`
281
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerablemaparrayflatten-vs-enumerableflat_map-code'
316
282
  Enabled: true
283
+ EnabledForFlattenWithoutParams: false
284
+ # If enabled, this cop will warn about usages of
285
+ # `flatten` being called without any parameters.
286
+ # This can be dangerous since `flat_map` will only flatten 1 level, and
287
+ # `flatten` without any parameters can flatten multiple levels.
317
288
 
318
- Style/IndentationWidth:
319
- Description: 'Use 2 spaces for indentation.'
320
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-indentation'
289
+ Performance/ReverseEach:
290
+ Description: 'Use `reverse_each` instead of `reverse.each`.'
291
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerablereverseeach-vs-enumerablereverse_each-code'
321
292
  Enabled: true
322
293
 
323
- Style/IndentArray:
294
+ Performance/Sample:
324
295
  Description: >-
325
- Checks the indentation of the first element in an array
326
- literal.
296
+ Use `sample` instead of `shuffle.first`,
297
+ `shuffle.last`, and `shuffle[Fixnum]`.
298
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#arrayshufflefirst-vs-arraysample-code'
327
299
  Enabled: true
328
300
 
329
- Style/IndentHash:
330
- Description: 'Checks the indentation of the first key in a hash literal.'
301
+ Performance/Size:
302
+ Description: >-
303
+ Use `size` instead of `count` for counting
304
+ the number of elements in `Array` and `Hash`.
305
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#arraycount-vs-arraysize-code'
331
306
  Enabled: true
332
307
 
333
- Style/InfiniteLoop:
334
- Description: 'Use Kernel#loop for infinite loops.'
335
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#infinite-loop'
308
+ Performance/StringReplacement:
309
+ Description: >-
310
+ Use `tr` instead of `gsub` when you are replacing the same
311
+ number of characters. Use `delete` instead of `gsub` when
312
+ you are deleting characters.
313
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#stringgsub-vs-stringtr-code'
336
314
  Enabled: true
337
315
 
338
- Style/Lambda:
339
- Description: 'Use the new lambda literal syntax for single-line blocks.'
340
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#lambda-multi-line'
316
+ ##################### Rails ##################################
317
+
318
+ Rails/ActionFilter:
319
+ Description: 'Enforces consistent use of action filter methods.'
341
320
  Enabled: false
342
321
 
343
- Style/LambdaCall:
344
- Description: 'Use lambda.call(...) instead of lambda.(...).'
345
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#proc-call'
346
- Enabled: true
322
+ Rails/Date:
323
+ Description: >-
324
+ Checks the correct usage of date aware methods,
325
+ such as Date.today, Date.current etc.
326
+ Enabled: false
347
327
 
348
- Style/LeadingCommentSpace:
349
- Description: 'Comments should start with a space.'
350
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#hash-space'
328
+ Rails/Delegate:
329
+ Description: 'Prefer delegate method for delegations.'
330
+ Enabled: false
331
+
332
+ Rails/FindBy:
333
+ Description: 'Prefer find_by over where.first.'
334
+ Enabled: false
335
+
336
+ Rails/FindEach:
337
+ Description: 'Prefer all.find_each over all.find.'
351
338
  Enabled: true
352
339
 
353
- Style/LineEndConcatenation:
354
- Description: >-
355
- Use \ instead of + or << to concatenate two string literals at
356
- line end.
340
+ Rails/HasAndBelongsToMany:
341
+ Description: 'Prefer has_many :through to has_and_belongs_to_many.'
357
342
  Enabled: false
358
343
 
359
- Style/MethodCallParentheses:
360
- Description: 'Do not use parentheses for method calls with no arguments.'
361
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-args-no-parens'
344
+ Rails/Output:
345
+ Description: 'Checks for calls to puts, print, etc.'
362
346
  Enabled: true
363
347
 
364
- Style/MethodDefParentheses:
348
+ Rails/ReadWriteAttribute:
365
349
  Description: >-
366
- Checks if the method definitions have or don't have
367
- parentheses.
368
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#method-parens'
369
- Enabled: true
350
+ Checks for read_attribute(:attr) and
351
+ write_attribute(:attr, val).
352
+ Enabled: false
370
353
 
371
- Style/MethodName:
372
- Description: 'Use the configured style when naming methods.'
373
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#snake-case-symbols-methods-vars'
374
- Enabled: true
354
+ Rails/ScopeArgs:
355
+ Description: 'Checks the arguments of ActiveRecord scopes.'
356
+ Enabled: false
375
357
 
376
- Style/ModuleFunction:
377
- Description: 'Checks for usage of `extend self` in modules.'
378
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#module-function'
358
+ Rails/TimeZone:
359
+ Description: 'Checks the correct usage of time zone aware methods.'
360
+ StyleGuide: 'https://github.com/bbatsov/rails-style-guide#time'
361
+ Reference: 'http://danilenko.org/2012/7/6/rails_timezones'
379
362
  Enabled: false
380
363
 
381
- Style/MultilineBlockChain:
382
- Description: 'Avoid multi-line chains of blocks.'
383
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#single-line-blocks'
364
+ Rails/Validation:
365
+ Description: 'Use validates :attribute, hash of validations.'
384
366
  Enabled: false
385
367
 
386
- Style/MultilineBlockLayout:
387
- Description: 'Ensures newlines after multiline block do statements.'
388
- Enabled: true
389
368
 
390
- Style/MultilineIfThen:
391
- Description: 'Do not use then for multi-line if/unless.'
392
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-then'
393
- Enabled: true
394
369
 
395
- Style/MultilineOperationIndentation:
370
+ ################## Style #################################
371
+
372
+ Style/AccessModifierIndentation:
373
+ Description: Check indentation of private/protected visibility modifiers.
374
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#indent-public-private-protected'
375
+ Enabled: false
376
+
377
+ Style/AccessorMethodName:
378
+ Description: Check the naming of accessor methods for get_/set_.
379
+ Enabled: false
380
+
381
+ Style/Alias:
382
+ Description: 'Use alias_method instead of alias.'
383
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#alias-method'
384
+ Enabled: false
385
+
386
+ Style/AlignArray:
396
387
  Description: >-
397
- Checks indentation of binary operations that span more than
388
+ Align the elements of an array literal if they span more than
398
389
  one line.
390
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#align-multiline-arrays'
399
391
  Enabled: true
400
392
 
401
- Style/MultilineTernaryOperator:
393
+ Style/AlignHash:
402
394
  Description: >-
403
- Avoid multi-line ?: (the ternary operator);
404
- use if/unless instead.
405
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-multiline-ternary'
395
+ Align the elements of a hash literal if they span more than
396
+ one line.
406
397
  Enabled: true
407
398
 
408
- Style/NegatedIf:
399
+ Style/AlignParameters:
409
400
  Description: >-
410
- Favor unless over if for negative conditions
411
- (or control flow or).
412
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#unless-for-negatives'
401
+ Align the parameters of a method call if they span more
402
+ than one line.
403
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-double-indent'
413
404
  Enabled: true
414
405
 
415
- Style/NegatedWhile:
416
- Description: 'Favor until over while for negative conditions.'
417
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#until-for-negatives'
418
- Enabled: false
406
+ Style/AndOr:
407
+ Description: 'Use &&/|| instead of and/or.'
408
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-and-or-or'
409
+ Enabled: true
419
410
 
420
- Style/NestedTernaryOperator:
421
- Description: 'Use one expression per branch in a ternary operator.'
422
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-ternary'
411
+ Style/ArrayJoin:
412
+ Description: 'Use Array#join instead of Array#*.'
413
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#array-join'
423
414
  Enabled: true
424
415
 
425
- Style/Next:
426
- Description: 'Use `next` to skip iteration instead of a condition at the end.'
427
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals'
416
+ Style/AsciiComments:
417
+ Description: 'Use only ascii symbols in comments.'
418
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#english-comments'
428
419
  Enabled: true
429
420
 
430
- Style/NilComparison:
431
- Description: 'Prefer x.nil? to x == nil.'
432
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#predicate-methods'
421
+ Style/AsciiIdentifiers:
422
+ Description: 'Use only ascii symbols in identifiers.'
423
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#english-identifiers'
433
424
  Enabled: true
434
425
 
435
- Style/NonNilCheck:
436
- Description: 'Checks for redundant nil checks.'
437
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-non-nil-checks'
426
+ Style/Attr:
427
+ Description: 'Checks for uses of Module#attr.'
428
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#attr'
438
429
  Enabled: false
439
430
 
440
- Style/Not:
441
- Description: 'Use ! instead of not.'
442
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#bang-not-not'
431
+ Style/BeginBlock:
432
+ Description: 'Avoid the use of BEGIN blocks.'
433
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-BEGIN-blocks'
443
434
  Enabled: true
444
435
 
445
- Style/NumericLiterals:
446
- Description: >-
447
- Add underscores to large numeric literals to improve their
448
- readability.
449
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscores-in-numerics'
436
+ Style/BarePercentLiterals:
437
+ Description: 'Checks if usage of %() or %Q() matches configuration.'
438
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-q-shorthand'
450
439
  Enabled: false
451
440
 
452
- Style/OneLineConditional:
453
- Description: >-
454
- Favor the ternary operator(?:) over
455
- if/then/else/end constructs.
456
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#ternary-operator'
457
- Enabled: true
458
-
459
- Style/OpMethod:
460
- Description: 'When defining binary operators, name the argument other.'
461
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#other-arg'
441
+ Style/BlockComments:
442
+ Description: 'Do not use block comments.'
443
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-block-comments'
462
444
  Enabled: false
463
445
 
464
- Style/OptionalArguments:
465
- Description: >-
466
- Checks for optional arguments that do not appear at the end
467
- of the argument list
468
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#optional-arguments'
446
+ Style/BlockEndNewline:
447
+ Description: 'Put end statement of multiline block on its own line.'
469
448
  Enabled: true
470
449
 
471
- Style/ParallelAssignment:
450
+ Style/BlockDelimiters:
472
451
  Description: >-
473
- Check for simple usages of parallel assignment.
474
- It will only warn when the number of variables
475
- matches on both sides of the assignment.
476
- This also provides performance benefits
477
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parallel-assignment'
478
- Reference: 'https://github.com/JuanitoFatas/fast-ruby#parallel-assignment-vs-sequential-assignment-code'
479
- Enabled: true
452
+ Avoid using {...} for multi-line blocks (multiline chaining is
453
+ always ugly).
454
+ Prefer {...} over do...end for single-line blocks.
455
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#single-line-blocks'
456
+ Enabled: false
480
457
 
481
- Style/ParenthesesAroundCondition:
482
- Description: >-
483
- Don't use parentheses around the condition of an
484
- if/unless/while.
485
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-parens-if'
458
+ Style/BracesAroundHashParameters:
459
+ Description: 'Enforce braces style around hash parameters.'
460
+ Enabled: false
461
+
462
+ Style/CaseEquality:
463
+ Description: 'Avoid explicit use of the case equality operator(===).'
464
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-case-equality'
486
465
  Enabled: true
487
466
 
488
- Style/PercentLiteralDelimiters:
489
- Description: 'Use `%`-literal delimiters consistently'
490
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-literal-braces'
467
+ Style/CaseIndentation:
468
+ Description: 'Indentation of when in a case/when/[else/]end.'
469
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#indent-when-to-case'
491
470
  Enabled: false
492
471
 
493
- Style/PercentQLiterals:
494
- Description: 'Checks if uses of %Q/%q match the configured preference.'
495
- Enabled: false
472
+ Style/CharacterLiteral:
473
+ Description: 'Checks for uses of character literals.'
474
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-character-literals'
475
+ Enabled: true
496
476
 
497
- Style/PerlBackrefs:
498
- Description: 'Avoid Perl-style regex back references.'
499
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-perl-regexp-last-matchers'
500
- Enabled: false
477
+ Style/ClassAndModuleCamelCase:
478
+ Description: 'Use CamelCase for classes and modules.'
479
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#camelcase-classes'
480
+ Enabled: true
501
481
 
502
- Style/PredicateName:
503
- Description: 'Check the names of predicate methods.'
504
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#bool-methods-qmark'
482
+ Style/ClassAndModuleChildren:
483
+ Description: 'Checks style of children classes and modules.'
505
484
  Enabled: false
506
485
 
507
- Style/Proc:
508
- Description: 'Use proc instead of Proc.new.'
509
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#proc'
510
- Enabled: false
486
+ Style/ClassCheck:
487
+ Description: 'Enforces consistent use of `Object#is_a?` or `Object#kind_of?`.'
488
+ Enabled: true
511
489
 
512
- Style/RaiseArgs:
513
- Description: 'Checks the arguments passed to raise/fail.'
514
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#exception-class-messages'
490
+ Style/ClassMethods:
491
+ Description: 'Use self when defining module/class methods.'
492
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#def-self-class-methods'
515
493
  Enabled: true
516
494
 
517
- Style/RedundantBegin:
518
- Description: "Don't use begin blocks when they are not needed."
519
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#begin-implicit'
495
+ Style/ClassVars:
496
+ Description: 'Avoid the use of class variables.'
497
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-class-vars'
498
+ Enabled: false
499
+
500
+ Style/ClosingParenthesisIndentation:
501
+ Description: 'Checks the indentation of hanging closing parentheses.'
520
502
  Enabled: true
521
503
 
522
- Style/RedundantException:
523
- Description: "Checks for an obsolete RuntimeException argument in raise/fail."
524
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-explicit-runtimeerror'
504
+ Style/ColonMethodCall:
505
+ Description: 'Do not use :: for method call.'
506
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#double-colons'
525
507
  Enabled: true
526
508
 
527
- Style/RedundantReturn:
528
- Description: "Don't use return where it's not required."
529
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-explicit-return'
509
+ Style/CommandLiteral:
510
+ Description: 'Use `` or %x around command literals.'
511
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-x'
530
512
  Enabled: false
531
513
 
532
- Style/RedundantSelf:
533
- Description: "Don't use self where it's not needed."
534
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-self-unless-required'
514
+ Style/CommentAnnotation:
515
+ Description: 'Checks formatting of annotation comments.'
516
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#annotate-keywords'
535
517
  Enabled: false
536
518
 
537
- Style/RegexpLiteral:
538
- Description: 'Use / or %r around regular expressions.'
539
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-r'
519
+ Style/CommentIndentation:
520
+ Description: 'Indentation of comments.'
540
521
  Enabled: false
541
522
 
542
- Style/RescueEnsureAlignment:
543
- Description: 'Align rescues and ensures correctly.'
523
+ Style/ConstantName:
524
+ Description: 'Constants should use SCREAMING_SNAKE_CASE.'
525
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#screaming-snake-case'
544
526
  Enabled: true
545
527
 
546
- Style/RescueModifier:
547
- Description: 'Avoid using rescue in its modifier form.'
548
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-rescue-modifiers'
528
+ Style/DefWithParentheses:
529
+ Description: 'Use def with parentheses when there are arguments.'
530
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#method-parens'
549
531
  Enabled: true
550
532
 
551
- Style/SelfAssignment:
552
- Description: >-
553
- Checks for places where self-assignment shorthand should have
554
- been used.
555
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#self-assignment'
533
+ Style/DeprecatedHashMethods:
534
+ Description: 'Checks for use of deprecated Hash methods.'
535
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#hash-key'
556
536
  Enabled: true
557
537
 
558
- Style/Semicolon:
559
- Description: "Don't use semicolons to terminate expressions."
560
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-semicolon'
538
+ Style/Documentation:
539
+ Description: 'Document classes and non-namespace modules.'
540
+ Enabled: false
541
+
542
+ Style/DotPosition:
543
+ Description: 'Checks the position of the dot in multi-line method calls.'
544
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#consistent-multi-line-chains'
561
545
  Enabled: true
562
546
 
563
- Style/SignalException:
564
- Description: 'Checks for proper usage of fail and raise.'
565
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#fail-method'
547
+ Style/DoubleNegation:
548
+ Description: 'Checks for uses of double negation (!!).'
549
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-bang-bang'
566
550
  Enabled: false
567
551
 
568
- Style/SingleLineBlockParams:
569
- Description: 'Enforces the names of some block params.'
570
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#reduce-blocks'
552
+ Style/EachWithObject:
553
+ Description: 'Prefer `each_with_object` over `inject` or `reduce`.'
571
554
  Enabled: false
572
555
 
573
- Style/SingleLineMethods:
574
- Description: 'Avoid single-line methods.'
575
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-single-line-methods'
556
+ Style/ElseAlignment:
557
+ Description: 'Align elses and elsifs correctly.'
576
558
  Enabled: true
577
559
 
578
- Style/SingleSpaceBeforeFirstArg:
579
- Description: >-
580
- Checks that exactly one space is used between a method name
581
- and the first argument for method calls without parentheses.
560
+ Style/EmptyElse:
561
+ Description: 'Avoid empty else-clauses.'
582
562
  Enabled: true
583
563
 
584
- Style/SpaceAfterColon:
585
- Description: 'Use spaces after colons.'
586
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-operators'
564
+ Style/EmptyLineBetweenDefs:
565
+ Description: 'Use empty lines between defs.'
566
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#empty-lines-between-methods'
587
567
  Enabled: true
588
568
 
589
- Style/SpaceAfterComma:
590
- Description: 'Use spaces after commas.'
591
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-operators'
569
+ Style/EmptyLines:
570
+ Description: "Don't use several empty lines in a row."
592
571
  Enabled: true
593
572
 
594
- Style/SpaceAfterControlKeyword:
595
- Description: 'Use spaces after if/elsif/unless/while/until/case/when.'
573
+ Style/EmptyLinesAroundAccessModifier:
574
+ Description: "Keep blank lines around access modifiers."
596
575
  Enabled: true
597
576
 
598
- Style/SpaceAfterMethodName:
599
- Description: >-
600
- Do not put a space between a method name and the opening
601
- parenthesis in a method definition.
602
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parens-no-spaces'
577
+ Style/EmptyLinesAroundBlockBody:
578
+ Description: "Keeps track of empty lines around block bodies."
603
579
  Enabled: true
604
580
 
605
- Style/SpaceAfterNot:
606
- Description: Tracks redundant space after the ! operator.
607
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-space-bang'
608
- Enabled: true
581
+ Style/EmptyLinesAroundClassBody:
582
+ Description: "Keeps track of empty lines around class bodies."
583
+ Enabled: false
609
584
 
610
- Style/SpaceAfterSemicolon:
611
- Description: 'Use spaces after semicolons.'
612
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-operators'
585
+ Style/EmptyLinesAroundModuleBody:
586
+ Description: "Keeps track of empty lines around module bodies."
587
+ Enabled: false
588
+
589
+ Style/EmptyLinesAroundMethodBody:
590
+ Description: "Keeps track of empty lines around method bodies."
613
591
  Enabled: true
614
592
 
615
- Style/SpaceBeforeBlockBraces:
616
- Description: >-
617
- Checks that the left block brace has or doesn't have space
618
- before it.
619
- Enabled: true
620
-
621
- Style/SpaceBeforeComma:
622
- Description: 'No spaces before commas.'
593
+ Style/EmptyLiteral:
594
+ Description: 'Prefer literals to Array.new/Hash.new/String.new.'
595
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#literal-array-hash'
623
596
  Enabled: true
624
597
 
625
- Style/SpaceBeforeComment:
626
- Description: >-
627
- Checks for missing space between code and a comment on the
628
- same line.
629
- Enabled: false
630
-
631
- Style/SpaceBeforeSemicolon:
632
- Description: 'No spaces before semicolons.'
598
+ Style/EndBlock:
599
+ Description: 'Avoid the use of END blocks.'
600
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-END-blocks'
633
601
  Enabled: true
634
602
 
635
- Style/SpaceInsideBlockBraces:
636
- Description: >-
637
- Checks that block braces have or don't have surrounding space.
638
- For blocks taking parameters, checks that the left brace has
639
- or doesn't have trailing space.
603
+ Style/EndOfLine:
604
+ Description: 'Use Unix-style line endings.'
605
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#crlf'
640
606
  Enabled: true
641
607
 
642
- Style/SpaceAroundBlockParameters:
643
- Description: 'Checks the spacing inside and after block parameters pipes.'
608
+ Style/EvenOdd:
609
+ Description: 'Favor the use of Fixnum#even? && Fixnum#odd?'
610
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#predicate-methods'
644
611
  Enabled: true
645
612
 
646
- Style/SpaceAroundEqualsInParameterDefault:
647
- Description: >-
648
- Checks that the equals signs in parameter default assignments
649
- have or don't have surrounding space depending on
650
- configuration.
651
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-around-equals'
613
+ Style/ExtraSpacing:
614
+ Description: 'Do not use unnecessary spacing.'
652
615
  Enabled: true
653
616
 
654
- Style/SpaceAroundOperators:
655
- Description: 'Use a single space around operators.'
656
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-operators'
617
+ Style/FileName:
618
+ Description: 'Use snake_case for source file names.'
619
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#snake-case-files'
657
620
  Enabled: true
658
621
 
659
- Style/SpaceBeforeModifierKeyword:
660
- Description: 'Put a space before the modifier keyword.'
622
+ Style/InitialIndentation:
623
+ Description: >-
624
+ Checks the indentation of the first non-blank non-comment line in a file.
661
625
  Enabled: true
662
626
 
663
- Style/SpaceInsideBrackets:
664
- Description: 'No spaces after [ or before ].'
665
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-spaces-braces'
627
+ Style/FirstParameterIndentation:
628
+ Description: 'Checks the indentation of the first parameter in a method call.'
666
629
  Enabled: false
667
630
 
668
- Style/SpaceInsideHashLiteralBraces:
669
- Description: "Use spaces inside hash literal braces - or don't."
670
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-operators'
631
+ Style/FlipFlop:
632
+ Description: 'Checks for flip flops'
633
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-flip-flops'
671
634
  Enabled: true
672
635
 
673
- Style/SpaceInsideParens:
674
- Description: 'No spaces after ( or before ).'
675
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-spaces-braces'
636
+ Style/For:
637
+ Description: 'Checks use of for or each in multiline loops.'
638
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-for-loops'
676
639
  Enabled: true
677
640
 
678
- Style/SpaceInsideRangeLiteral:
679
- Description: 'No spaces inside range literals.'
680
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-space-inside-range-literals'
641
+ Style/FormatString:
642
+ Description: 'Enforce the use of Kernel#sprintf, Kernel#format or String#%.'
643
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#sprintf'
681
644
  Enabled: true
682
645
 
683
- Style/SpaceInsideStringInterpolation:
684
- Description: 'Checks for padding/surrounding spaces inside string interpolation.'
685
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#string-interpolation'
646
+ Style/GlobalVars:
647
+ Description: 'Do not introduce global variables.'
648
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#instance-vars'
649
+ Reference: 'http://www.zenspider.com/Languages/Ruby/QuickRef.html'
686
650
  Enabled: true
687
651
 
688
- Style/SpecialGlobalVars:
689
- Description: 'Avoid Perl-style global variables.'
690
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-cryptic-perlisms'
652
+ Style/GuardClause:
653
+ Description: 'Check for conditionals that can be replaced with guard clauses'
654
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals'
691
655
  Enabled: true
692
656
 
693
- Style/StringLiterals:
694
- Description: 'Checks if uses of quotes match the configured preference.'
695
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#consistent-string-literals'
696
- Enabled: false
657
+ Style/HashSyntax:
658
+ Description: >-
659
+ Prefer Ruby 1.9 hash syntax { a: 1, b: 2 } over 1.8 syntax
660
+ { :a => 1, :b => 2 }.
661
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#hash-literals'
662
+ Enabled: true
697
663
 
698
- Style/StringLiteralsInInterpolation:
664
+ Style/IfUnlessModifier:
699
665
  Description: >-
700
- Checks if uses of quotes inside expressions in interpolated
701
- strings match the configured preference.
666
+ Favor modifier if/unless usage when you have a
667
+ single-line body.
668
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#if-as-a-modifier'
702
669
  Enabled: false
703
670
 
704
- Style/StructInheritance:
705
- Description: 'Checks for inheritance from Struct.new.'
706
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-extend-struct-new'
707
- Enabled: true
708
-
709
- Style/SymbolLiteral:
710
- Description: 'Use plain symbols instead of string symbols when possible.'
671
+ Style/IfWithSemicolon:
672
+ Description: 'Do not use if x; .... Use the ternary operator instead.'
673
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-semicolon-ifs'
711
674
  Enabled: true
712
675
 
713
- Style/SymbolProc:
714
- Description: 'Use symbols as procs instead of blocks when possible.'
676
+ Style/IndentationConsistency:
677
+ Description: 'Keep indentation straight.'
715
678
  Enabled: true
716
679
 
717
- Style/Tab:
718
- Description: 'No hard tabs.'
680
+ Style/IndentationWidth:
681
+ Description: 'Use 2 spaces for indentation.'
719
682
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-indentation'
720
683
  Enabled: true
721
684
 
722
- Style/TrailingBlankLines:
723
- Description: 'Checks trailing blank lines and final newline.'
724
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#newline-eof'
685
+ Style/IndentArray:
686
+ Description: >-
687
+ Checks the indentation of the first element in an array
688
+ literal.
725
689
  Enabled: true
726
690
 
727
- Style/TrailingWhitespace:
728
- Description: 'Avoid trailing whitespace.'
729
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-whitespace'
691
+ Style/IndentHash:
692
+ Description: 'Checks the indentation of the first key in a hash literal.'
730
693
  Enabled: true
731
694
 
732
- Style/TrivialAccessors:
733
- Description: 'Prefer attr_* methods to trivial readers/writers.'
734
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#attr_family'
695
+ Style/InfiniteLoop:
696
+ Description: 'Use Kernel#loop for infinite loops.'
697
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#infinite-loop'
735
698
  Enabled: true
736
699
 
737
- Style/UnlessElse:
738
- Description: >-
739
- Do not use unless with else. Rewrite these with the positive
740
- case first.
741
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-else-with-unless'
700
+ Style/Lambda:
701
+ Description: 'Use the new lambda literal syntax for single-line blocks.'
702
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#lambda-multi-line'
703
+ Enabled: false
704
+
705
+ Style/LambdaCall:
706
+ Description: 'Use lambda.call(...) instead of lambda.(...).'
707
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#proc-call'
742
708
  Enabled: true
743
709
 
744
- Style/UnneededCapitalW:
745
- Description: 'Checks for %W when interpolation is not needed.'
746
- Enabled: false
710
+ Style/LeadingCommentSpace:
711
+ Description: 'Comments should start with a space.'
712
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#hash-space'
713
+ Enabled: true
747
714
 
748
- Style/UnneededPercentQ:
749
- Description: 'Checks for %q/%Q when single quotes or double quotes would do.'
750
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-q'
715
+ Style/LineEndConcatenation:
716
+ Description: >-
717
+ Use \ instead of + or << to concatenate two string literals at
718
+ line end.
751
719
  Enabled: false
752
720
 
753
- Style/TrailingUnderscoreVariable:
754
- Description: >-
755
- Checks for the usage of unneeded trailing underscores at the
756
- end of parallel variable assignment.
721
+ Style/MethodCallParentheses:
722
+ Description: 'Do not use parentheses for method calls with no arguments.'
723
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-args-no-parens'
757
724
  Enabled: true
758
725
 
759
- Style/VariableInterpolation:
726
+ Style/MethodDefParentheses:
760
727
  Description: >-
761
- Don't interpolate global, instance and class variables
762
- directly in strings.
763
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#curlies-interpolate'
728
+ Checks if the method definitions have or don't have
729
+ parentheses.
730
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#method-parens'
764
731
  Enabled: true
765
732
 
766
- Style/VariableName:
767
- Description: 'Use the configured style when naming variables.'
733
+ Style/MethodName:
734
+ Description: 'Use the configured style when naming methods.'
768
735
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#snake-case-symbols-methods-vars'
769
736
  Enabled: true
770
737
 
771
- Style/WhenThen:
772
- Description: 'Use when x then ... for one-line cases.'
773
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#one-line-cases'
738
+ Style/ModuleFunction:
739
+ Description: 'Checks for usage of `extend self` in modules.'
740
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#module-function'
774
741
  Enabled: false
775
742
 
776
- Style/WhileUntilDo:
777
- Description: 'Checks for redundant do after while or until.'
778
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-multiline-while-do'
743
+ Style/MultilineBlockChain:
744
+ Description: 'Avoid multi-line chains of blocks.'
745
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#single-line-blocks'
779
746
  Enabled: false
780
747
 
781
- Style/WhileUntilModifier:
782
- Description: >-
783
- Favor modifier while/until usage when you have a
784
- single-line body.
785
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#while-as-a-modifier'
786
- Enabled: false
748
+ Style/MultilineBlockLayout:
749
+ Description: 'Ensures newlines after multiline block do statements.'
750
+ Enabled: true
787
751
 
788
- Style/WordArray:
789
- Description: 'Use %w or %W for arrays of words.'
790
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-w'
752
+ Style/MultilineIfThen:
753
+ Description: 'Do not use then for multi-line if/unless.'
754
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-then'
791
755
  Enabled: true
792
756
 
793
- ##########################################################
794
- Metrics/AbcSize:
757
+ Style/MultilineOperationIndentation:
795
758
  Description: >-
796
- A calculated magnitude based on number of assignments,
797
- branches, and conditions.
798
- Reference: 'http://c2.com/cgi/wiki?AbcMetric'
759
+ Checks indentation of binary operations that span more than
760
+ one line.
799
761
  Enabled: true
800
- Max: 20
801
762
 
802
- Metrics/BlockNesting:
803
- Description: 'Avoid excessive block nesting'
804
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#three-is-the-number-thou-shalt-count'
763
+ Style/MultilineTernaryOperator:
764
+ Description: >-
765
+ Avoid multi-line ?: (the ternary operator);
766
+ use if/unless instead.
767
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-multiline-ternary'
805
768
  Enabled: true
806
- Max: 4
807
769
 
808
- Metrics/ClassLength:
809
- Description: 'Avoid classes longer than 100 lines of code.'
770
+ Style/NegatedIf:
771
+ Description: >-
772
+ Favor unless over if for negative conditions
773
+ (or control flow or).
774
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#unless-for-negatives'
810
775
  Enabled: true
811
- Max: 150
812
776
 
813
- Metrics/ModuleLength:
814
- Description: 'Avoid modules longer than 100 lines of code.'
777
+ Style/NegatedWhile:
778
+ Description: 'Favor until over while for negative conditions.'
779
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#until-for-negatives'
780
+ Enabled: false
781
+
782
+ Style/NestedTernaryOperator:
783
+ Description: 'Use one expression per branch in a ternary operator.'
784
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-ternary'
815
785
  Enabled: true
816
- Max: 150
817
786
 
818
- Metrics/CyclomaticComplexity:
819
- Description: >-
820
- A complexity metric that is strongly correlated to the number
821
- of test cases needed to validate a method.
822
- Enabled: false
787
+ Style/Next:
788
+ Description: 'Use `next` to skip iteration instead of a condition at the end.'
789
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals'
790
+ Enabled: true
823
791
 
824
- Metrics/LineLength:
825
- Description: 'Limit lines to 80 characters.'
826
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#80-character-limits'
827
- Enabled: false
792
+ Style/NilComparison:
793
+ Description: 'Prefer x.nil? to x == nil.'
794
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#predicate-methods'
795
+ Enabled: true
828
796
 
829
- Metrics/MethodLength:
830
- Description: 'Avoid methods longer than 10 lines of code.'
831
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#short-methods'
797
+ Style/NonNilCheck:
798
+ Description: 'Checks for redundant nil checks.'
799
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-non-nil-checks'
832
800
  Enabled: false
833
801
 
834
- Metrics/ParameterLists:
835
- Description: 'Avoid parameter lists longer than three or four parameters.'
836
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#too-many-params'
802
+ Style/Not:
803
+ Description: 'Use ! instead of not.'
804
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#bang-not-not'
837
805
  Enabled: true
838
806
 
839
- Metrics/PerceivedComplexity:
807
+ Style/NumericLiterals:
840
808
  Description: >-
841
- A complexity metric geared towards measuring complexity for a
842
- human reader.
809
+ Add underscores to large numeric literals to improve their
810
+ readability.
811
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscores-in-numerics'
843
812
  Enabled: false
844
813
 
845
- #################### Lint ################################
846
- ### Warnings
847
-
848
- Lint/AmbiguousOperator:
814
+ Style/OneLineConditional:
849
815
  Description: >-
850
- Checks for ambiguous operators in the first argument of a
851
- method invocation without parentheses.
852
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parens-as-args'
816
+ Favor the ternary operator(?:) over
817
+ if/then/else/end constructs.
818
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#ternary-operator'
853
819
  Enabled: true
854
820
 
855
- Lint/AmbiguousRegexpLiteral:
821
+ Style/OpMethod:
822
+ Description: 'When defining binary operators, name the argument other.'
823
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#other-arg'
824
+ Enabled: false
825
+
826
+ Style/OptionalArguments:
856
827
  Description: >-
857
- Checks for ambiguous regexp literals in the first argument of
858
- a method invocation without parenthesis.
828
+ Checks for optional arguments that do not appear at the end
829
+ of the argument list
830
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#optional-arguments'
859
831
  Enabled: true
860
832
 
861
- Lint/AssignmentInCondition:
862
- Description: "Don't use assignment in conditions."
863
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#safe-assignment-in-condition'
833
+ Style/ParallelAssignment:
834
+ Description: >-
835
+ Check for simple usages of parallel assignment.
836
+ It will only warn when the number of variables
837
+ matches on both sides of the assignment.
838
+ This also provides performance benefits
839
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parallel-assignment'
864
840
  Enabled: true
865
841
 
866
- Lint/BlockAlignment:
867
- Description: 'Align block ends correctly.'
842
+ Style/ParenthesesAroundCondition:
843
+ Description: >-
844
+ Don't use parentheses around the condition of an
845
+ if/unless/while.
846
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-parens-if'
868
847
  Enabled: true
869
848
 
870
- Lint/CircularArgumentReference:
871
- Description: "Don't refer to the keyword argument in the default value."
872
- Enabled: true
849
+ Style/PercentLiteralDelimiters:
850
+ Description: 'Use `%`-literal delimiters consistently'
851
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-literal-braces'
852
+ Enabled: false
873
853
 
874
- Lint/ConditionPosition:
875
- Description: >-
876
- Checks for condition placed in a confusing position relative to
877
- the keyword.
878
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#same-line-condition'
879
- Enabled: true
854
+ Style/PercentQLiterals:
855
+ Description: 'Checks if uses of %Q/%q match the configured preference.'
856
+ Enabled: false
880
857
 
881
- Lint/Debugger:
882
- Description: 'Check for debugger calls.'
883
- Enabled: true
858
+ Style/PerlBackrefs:
859
+ Description: 'Avoid Perl-style regex back references.'
860
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-perl-regexp-last-matchers'
861
+ Enabled: false
884
862
 
885
- Lint/DefEndAlignment:
886
- Description: 'Align ends corresponding to defs correctly.'
887
- Enabled: true
863
+ Style/PredicateName:
864
+ Description: 'Check the names of predicate methods.'
865
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#bool-methods-qmark'
866
+ Enabled: false
888
867
 
889
- Lint/DeprecatedClassMethods:
890
- Description: 'Check for deprecated class method calls.'
891
- Enabled: true
868
+ Style/Proc:
869
+ Description: 'Use proc instead of Proc.new.'
870
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#proc'
871
+ Enabled: false
892
872
 
893
- Lint/DuplicateMethods:
894
- Description: 'Check for duplicate methods calls.'
873
+ Style/RaiseArgs:
874
+ Description: 'Checks the arguments passed to raise/fail.'
875
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#exception-class-messages'
895
876
  Enabled: true
896
877
 
897
- Lint/EachWithObjectArgument:
898
- Description: 'Check for immutable argument given to each_with_object.'
878
+ Style/RedundantBegin:
879
+ Description: "Don't use begin blocks when they are not needed."
880
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#begin-implicit'
899
881
  Enabled: true
900
882
 
901
- Lint/ElseLayout:
902
- Description: 'Check for odd code arrangement in an else block.'
883
+ Style/RedundantException:
884
+ Description: "Checks for an obsolete RuntimeException argument in raise/fail."
885
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-explicit-runtimeerror'
903
886
  Enabled: true
904
887
 
905
- Lint/EmptyEnsure:
906
- Description: 'Checks for empty ensure block.'
907
- Enabled: true
888
+ Style/RedundantReturn:
889
+ Description: "Don't use return where it's not required."
890
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-explicit-return'
891
+ Enabled: false
908
892
 
909
- Lint/EmptyInterpolation:
910
- Description: 'Checks for empty string interpolation.'
911
- Enabled: true
893
+ Style/RedundantSelf:
894
+ Description: "Don't use self where it's not needed."
895
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-self-unless-required'
896
+ Enabled: false
912
897
 
913
- Lint/EndAlignment:
914
- Description: 'Align ends correctly.'
915
- Enabled: true
898
+ Style/RegexpLiteral:
899
+ Description: 'Use / or %r around regular expressions.'
900
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-r'
901
+ Enabled: false
916
902
 
917
- Lint/EndInMethod:
918
- Description: 'END blocks should not be placed inside method definitions.'
903
+ Style/RescueEnsureAlignment:
904
+ Description: 'Align rescues and ensures correctly.'
919
905
  Enabled: true
920
906
 
921
- Lint/EnsureReturn:
922
- Description: 'Do not use return in an ensure block.'
923
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-return-ensure'
907
+ Style/RescueModifier:
908
+ Description: 'Avoid using rescue in its modifier form.'
909
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-rescue-modifiers'
924
910
  Enabled: true
925
911
 
926
- Lint/Eval:
927
- Description: 'The use of eval represents a serious security risk.'
912
+ Style/SelfAssignment:
913
+ Description: >-
914
+ Checks for places where self-assignment shorthand should have
915
+ been used.
916
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#self-assignment'
928
917
  Enabled: true
929
918
 
930
- Lint/FormatParameterMismatch:
931
- Description: 'The number of parameters to format/sprint must match the fields.'
919
+ Style/Semicolon:
920
+ Description: "Don't use semicolons to terminate expressions."
921
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-semicolon'
932
922
  Enabled: true
933
923
 
934
- Lint/HandleExceptions:
935
- Description: "Don't suppress exception."
936
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#dont-hide-exceptions'
937
- Enabled: true
924
+ Style/SignalException:
925
+ Description: 'Checks for proper usage of fail and raise.'
926
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#fail-method'
927
+ Enabled: false
938
928
 
939
- Lint/InvalidCharacterLiteral:
940
- Description: >-
941
- Checks for invalid character literals with a non-escaped
942
- whitespace character.
943
- Enabled: true
929
+ Style/SingleLineBlockParams:
930
+ Description: 'Enforces the names of some block params.'
931
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#reduce-blocks'
932
+ Enabled: false
944
933
 
945
- Lint/LiteralInCondition:
946
- Description: 'Checks of literals used in conditions.'
934
+ Style/SingleLineMethods:
935
+ Description: 'Avoid single-line methods.'
936
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-single-line-methods'
947
937
  Enabled: true
948
938
 
949
- Lint/LiteralInInterpolation:
950
- Description: 'Checks for literals used in interpolation.'
939
+ Style/SpaceBeforeFirstArg:
940
+ Description: >-
941
+ Checks that exactly one space is used between a method name
942
+ and the first argument for method calls without parentheses.
951
943
  Enabled: true
952
944
 
953
- Lint/Loop:
954
- Description: >-
955
- Use Kernel#loop with break rather than begin/end/until or
956
- begin/end/while for post-loop tests.
957
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#loop-with-break'
945
+ Style/SpaceAfterColon:
946
+ Description: 'Use spaces after colons.'
947
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-operators'
958
948
  Enabled: true
959
949
 
960
- Lint/NestedMethodDefinition:
961
- Description: 'Do not use nested method definitions.'
962
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-methods'
950
+ Style/SpaceAfterComma:
951
+ Description: 'Use spaces after commas.'
952
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-operators'
963
953
  Enabled: true
964
954
 
965
- Lint/NonLocalExitFromIterator:
966
- Description: 'Do not use return in iterator to cause non-local exit.'
955
+ Style/SpaceAroundKeyword:
956
+ Description: 'Use spaces around keywords.'
967
957
  Enabled: true
968
958
 
969
- Lint/ParenthesesAsGroupedExpression:
959
+ Style/SpaceAfterMethodName:
970
960
  Description: >-
971
- Checks for method calls with a space before the opening
972
- parenthesis.
961
+ Do not put a space between a method name and the opening
962
+ parenthesis in a method definition.
973
963
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parens-no-spaces'
974
964
  Enabled: true
975
965
 
976
- Lint/RequireParentheses:
977
- Description: >-
978
- Use parentheses in the method call to avoid confusion
979
- about precedence.
966
+ Style/SpaceAfterNot:
967
+ Description: Tracks redundant space after the ! operator.
968
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-space-bang'
980
969
  Enabled: true
981
970
 
982
- Lint/RescueException:
983
- Description: 'Avoid rescuing the Exception class.'
984
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-blind-rescues'
971
+ Style/SpaceAfterSemicolon:
972
+ Description: 'Use spaces after semicolons.'
973
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-operators'
985
974
  Enabled: true
986
975
 
987
- Lint/ShadowingOuterLocalVariable:
976
+ Style/SpaceBeforeBlockBraces:
988
977
  Description: >-
989
- Do not use the same name as outer local variable
990
- for block arguments or block local variables.
978
+ Checks that the left block brace has or doesn't have space
979
+ before it.
991
980
  Enabled: true
992
981
 
993
- Lint/SpaceBeforeFirstArg:
994
- Description: >-
995
- Put a space between a method name and the first argument
996
- in a method call without parentheses.
982
+ Style/SpaceBeforeComma:
983
+ Description: 'No spaces before commas.'
997
984
  Enabled: true
998
985
 
999
- Lint/StringConversionInInterpolation:
1000
- Description: 'Checks for Object#to_s usage in string interpolation.'
1001
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-to-s'
1002
- Enabled: true
986
+ Style/SpaceBeforeComment:
987
+ Description: >-
988
+ Checks for missing space between code and a comment on the
989
+ same line.
990
+ Enabled: false
1003
991
 
1004
- Lint/UnderscorePrefixedVariableName:
1005
- Description: 'Do not use prefix `_` for a variable that is used.'
992
+ Style/SpaceBeforeSemicolon:
993
+ Description: 'No spaces before semicolons.'
1006
994
  Enabled: true
1007
995
 
1008
- Lint/UnneededDisable:
996
+ Style/SpaceInsideBlockBraces:
1009
997
  Description: >-
1010
- Checks for rubocop:disable comments that can be removed.
1011
- Note: this cop is not disabled when disabling all cops.
1012
- It must be explicitly disabled.
998
+ Checks that block braces have or don't have surrounding space.
999
+ For blocks taking parameters, checks that the left brace has
1000
+ or doesn't have trailing space.
1013
1001
  Enabled: true
1014
1002
 
1015
- Lint/UnusedBlockArgument:
1016
- Description: 'Checks for unused block arguments.'
1017
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscore-unused-vars'
1003
+ Style/SpaceAroundBlockParameters:
1004
+ Description: 'Checks the spacing inside and after block parameters pipes.'
1018
1005
  Enabled: true
1019
1006
 
1020
- Lint/UnusedMethodArgument:
1021
- Description: 'Checks for unused method arguments.'
1022
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscore-unused-vars'
1007
+ Style/SpaceAroundEqualsInParameterDefault:
1008
+ Description: >-
1009
+ Checks that the equals signs in parameter default assignments
1010
+ have or don't have surrounding space depending on
1011
+ configuration.
1012
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-around-equals'
1023
1013
  Enabled: true
1024
1014
 
1025
- Lint/UnreachableCode:
1026
- Description: 'Unreachable code.'
1015
+ Style/SpaceAroundOperators:
1016
+ Description: 'Use a single space around operators.'
1017
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-operators'
1027
1018
  Enabled: true
1028
1019
 
1029
- Lint/UselessAccessModifier:
1030
- Description: 'Checks for useless access modifiers.'
1031
- Enabled: true
1020
+ Style/SpaceInsideBrackets:
1021
+ Description: 'No spaces after [ or before ].'
1022
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-spaces-braces'
1023
+ Enabled: false
1032
1024
 
1033
- Lint/UselessAssignment:
1034
- Description: 'Checks for useless assignment to a local variable.'
1035
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscore-unused-vars'
1025
+ Style/SpaceInsideHashLiteralBraces:
1026
+ Description: "Use spaces inside hash literal braces - or don't."
1027
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-operators'
1036
1028
  Enabled: true
1037
1029
 
1038
- Lint/UselessComparison:
1039
- Description: 'Checks for comparison of something with itself.'
1030
+ Style/SpaceInsideParens:
1031
+ Description: 'No spaces after ( or before ).'
1032
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-spaces-braces'
1040
1033
  Enabled: true
1041
1034
 
1042
- Lint/UselessElseWithoutRescue:
1043
- Description: 'Checks for useless `else` in `begin..end` without `rescue`.'
1035
+ Style/SpaceInsideRangeLiteral:
1036
+ Description: 'No spaces inside range literals.'
1037
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-space-inside-range-literals'
1044
1038
  Enabled: true
1045
1039
 
1046
- Lint/UselessSetterCall:
1047
- Description: 'Checks for useless setter call to a local variable.'
1040
+ Style/SpaceInsideStringInterpolation:
1041
+ Description: 'Checks for padding/surrounding spaces inside string interpolation.'
1042
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#string-interpolation'
1048
1043
  Enabled: true
1049
1044
 
1050
- Lint/Void:
1051
- Description: 'Possible use of operator/literal/variable in void context.'
1045
+ Style/SpecialGlobalVars:
1046
+ Description: 'Avoid Perl-style global variables.'
1047
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-cryptic-perlisms'
1052
1048
  Enabled: true
1053
1049
 
1054
- ##################### Performance #############################
1055
-
1056
- Performance/Count:
1057
- Description: >-
1058
- Use `count` instead of `select...size`, `reject...size`,
1059
- `select...count`, `reject...count`, `select...length`,
1060
- and `reject...length`.
1061
- Enabled: true
1050
+ Style/StringLiterals:
1051
+ Description: 'Checks if uses of quotes match the configured preference.'
1052
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#consistent-string-literals'
1053
+ Enabled: false
1062
1054
 
1063
- Performance/Detect:
1055
+ Style/StringLiteralsInInterpolation:
1064
1056
  Description: >-
1065
- Use `detect` instead of `select.first`, `find_all.first`,
1066
- `select.last`, and `find_all.last`.
1067
- Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerabledetect-vs-enumerableselectfirst-code'
1068
- Enabled: true
1057
+ Checks if uses of quotes inside expressions in interpolated
1058
+ strings match the configured preference.
1059
+ Enabled: false
1069
1060
 
1070
- Performance/FlatMap:
1071
- Description: >-
1072
- Use `Enumerable#flat_map`
1073
- instead of `Enumerable#map...Array#flatten(1)`
1074
- or `Enumberable#collect..Array#flatten(1)`
1075
- Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerablemaparrayflatten-vs-enumerableflat_map-code'
1061
+ Style/StructInheritance:
1062
+ Description: 'Checks for inheritance from Struct.new.'
1063
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-extend-struct-new'
1076
1064
  Enabled: true
1077
- EnabledForFlattenWithoutParams: false
1078
- # If enabled, this cop will warn about usages of
1079
- # `flatten` being called without any parameters.
1080
- # This can be dangerous since `flat_map` will only flatten 1 level, and
1081
- # `flatten` without any parameters can flatten multiple levels.
1082
1065
 
1083
- Performance/ReverseEach:
1084
- Description: 'Use `reverse_each` instead of `reverse.each`.'
1085
- Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerablereverseeach-vs-enumerablereverse_each-code'
1066
+ Style/SymbolLiteral:
1067
+ Description: 'Use plain symbols instead of string symbols when possible.'
1086
1068
  Enabled: true
1087
1069
 
1088
- Performance/Sample:
1089
- Description: >-
1090
- Use `sample` instead of `shuffle.first`,
1091
- `shuffle.last`, and `shuffle[Fixnum]`.
1092
- Reference: 'https://github.com/JuanitoFatas/fast-ruby#arrayshufflefirst-vs-arraysample-code'
1070
+ Style/SymbolProc:
1071
+ Description: 'Use symbols as procs instead of blocks when possible.'
1093
1072
  Enabled: true
1094
1073
 
1095
- Performance/Size:
1096
- Description: >-
1097
- Use `size` instead of `count` for counting
1098
- the number of elements in `Array` and `Hash`.
1099
- Reference: 'https://github.com/JuanitoFatas/fast-ruby#arraycount-vs-arraysize-code'
1074
+ Style/Tab:
1075
+ Description: 'No hard tabs.'
1076
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-indentation'
1100
1077
  Enabled: true
1101
1078
 
1102
- Performance/StringReplacement:
1103
- Description: >-
1104
- Use `tr` instead of `gsub` when you are replacing the same
1105
- number of characters. Use `delete` instead of `gsub` when
1106
- you are deleting characters.
1107
- Reference: 'https://github.com/JuanitoFatas/fast-ruby#stringgsub-vs-stringtr-code'
1079
+ Style/TrailingBlankLines:
1080
+ Description: 'Checks trailing blank lines and final newline.'
1081
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#newline-eof'
1108
1082
  Enabled: true
1109
1083
 
1110
- ##################### Rails ##################################
1111
- #
1112
- # Consider enabling some/all of these if you use Rails.
1113
- #
1114
- Rails/ActionFilter:
1115
- Description: 'Enforces consistent use of action filter methods.'
1084
+ Style/TrailingCommaInArguments:
1085
+ Description: 'Checks for trailing comma in parameter lists.'
1086
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-params-comma'
1116
1087
  Enabled: false
1117
1088
 
1118
- Rails/Date:
1119
- Description: >-
1120
- Checks the correct usage of date aware methods,
1121
- such as Date.today, Date.current etc.
1089
+ Style/TrailingCommaInLiteral:
1090
+ Description: 'Checks for trailing comma in literals.'
1091
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
1122
1092
  Enabled: false
1123
1093
 
1124
- Rails/DefaultScope:
1125
- Description: 'Checks if the argument passed to default_scope is a block.'
1126
- Enabled: false
1094
+ Style/TrailingWhitespace:
1095
+ Description: 'Avoid trailing whitespace.'
1096
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-whitespace'
1097
+ Enabled: true
1127
1098
 
1128
- Rails/Delegate:
1129
- Description: 'Prefer delegate method for delegations.'
1099
+ Style/TrivialAccessors:
1100
+ Description: 'Prefer attr_* methods to trivial readers/writers.'
1101
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#attr_family'
1102
+ Enabled: true
1103
+
1104
+ Style/UnlessElse:
1105
+ Description: >-
1106
+ Do not use unless with else. Rewrite these with the positive
1107
+ case first.
1108
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-else-with-unless'
1109
+ Enabled: true
1110
+
1111
+ Style/UnneededCapitalW:
1112
+ Description: 'Checks for %W when interpolation is not needed.'
1130
1113
  Enabled: false
1131
1114
 
1132
- Rails/FindBy:
1133
- Description: 'Prefer find_by over where.first.'
1115
+ Style/UnneededPercentQ:
1116
+ Description: 'Checks for %q/%Q when single quotes or double quotes would do.'
1117
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-q'
1134
1118
  Enabled: false
1135
1119
 
1136
- Rails/FindEach:
1137
- Description: 'Prefer all.find_each over all.find.'
1120
+ Style/TrailingUnderscoreVariable:
1121
+ Description: >-
1122
+ Checks for the usage of unneeded trailing underscores at the
1123
+ end of parallel variable assignment.
1138
1124
  Enabled: true
1139
1125
 
1140
- Rails/HasAndBelongsToMany:
1141
- Description: 'Prefer has_many :through to has_and_belongs_to_many.'
1142
- Enabled: false
1126
+ Style/VariableInterpolation:
1127
+ Description: >-
1128
+ Don't interpolate global, instance and class variables
1129
+ directly in strings.
1130
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#curlies-interpolate'
1131
+ Enabled: true
1143
1132
 
1144
- Rails/Output:
1145
- Description: 'Checks for calls to puts, print, etc.'
1133
+ Style/VariableName:
1134
+ Description: 'Use the configured style when naming variables.'
1135
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#snake-case-symbols-methods-vars'
1146
1136
  Enabled: true
1147
1137
 
1148
- Rails/ReadWriteAttribute:
1149
- Description: >-
1150
- Checks for read_attribute(:attr) and
1151
- write_attribute(:attr, val).
1138
+ Style/WhenThen:
1139
+ Description: 'Use when x then ... for one-line cases.'
1140
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#one-line-cases'
1152
1141
  Enabled: false
1153
1142
 
1154
- Rails/ScopeArgs:
1155
- Description: 'Checks the arguments of ActiveRecord scopes.'
1143
+ Style/WhileUntilDo:
1144
+ Description: 'Checks for redundant do after while or until.'
1145
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-multiline-while-do'
1156
1146
  Enabled: false
1157
1147
 
1158
- Rails/TimeZone:
1159
- Description: 'Checks the correct usage of time zone aware methods.'
1160
- StyleGuide: 'https://github.com/bbatsov/rails-style-guide#time'
1161
- Reference: 'http://danilenko.org/2012/7/6/rails_timezones'
1148
+ Style/WhileUntilModifier:
1149
+ Description: >-
1150
+ Favor modifier while/until usage when you have a
1151
+ single-line body.
1152
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#while-as-a-modifier'
1162
1153
  Enabled: false
1163
1154
 
1164
- Rails/Validation:
1165
- Description: 'Use validates :attribute, hash of validations.'
1166
- Enabled: false
1155
+ Style/WordArray:
1156
+ Description: 'Use %w or %W for arrays of words.'
1157
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-w'
1158
+ Enabled: true