gitlab-styles 2.0.0 → 2.1.0

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
- SHA1:
3
- metadata.gz: 428a98eba0188d3e0da5edce2a199920e67f9f7d
4
- data.tar.gz: 2524287dacb4b19dbc0fc80db30566bd4d98c55a
2
+ SHA256:
3
+ metadata.gz: 6524a0d089736b32d3cade47711da247bac96961d97da814715c11ea977237b7
4
+ data.tar.gz: 83876a151dbd560911b4d4c8b92d9692bd3192920521f8e7c2b69f030478faaf
5
5
  SHA512:
6
- metadata.gz: 3ee7038b87dab11c007c0c30927500cce85a17c24b1aa496398ecf26eaa17188d0a76091433330d949dd91c5f831acd51e5ae74ae08e1f284c7b13c7d6603561
7
- data.tar.gz: 8e8c88aaec1d8eee2a872638903fe6574ef99a3cd0bff47e80c2ae7755f03e6067056d4b5232fcb802ce7c5fafe989e4315d377b0b038ebffd26431ec2f37bb9
6
+ metadata.gz: 1c5840d3fc84a7f0979a19cc86cfac8b1408c9d27c5aed1a61f971789ac3feb8b5baeea236f7a16d69a04018d6941152b97a407516fafe1cec69058648158489
7
+ data.tar.gz: 93815193b0ead85db1823585a6fffe7a2db1f564fc8f1b02eaac18c286d43b87b2b42e947af4813bfec45d85d6261d973e8ae1984cf282c56388ca68ccb4a0e3
@@ -5,8 +5,8 @@ before_script:
5
5
  - bundle install
6
6
 
7
7
  styles:
8
- script:
9
- - bundle exec rubocop
8
+ script:
9
+ - bundle exec rubocop --debug --parallel
10
10
 
11
11
  specs:
12
12
  script:
@@ -1 +1,3 @@
1
- inherit_from: rubocop-default.yml
1
+ inherit_from:
2
+ - rubocop-default.yml
3
+ - .rubocop_todo.yml
@@ -0,0 +1,7 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2017-11-03 15:49:59 +0100 using RuboCop version 0.51.0.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
data/README.md CHANGED
@@ -21,7 +21,7 @@ Or install it yourself as:
21
21
 
22
22
  ## Usage
23
23
 
24
- ### RuboCop
24
+ ### Inherit all rules
25
25
 
26
26
  Include the following in your `.rubocop.yml` and remove all the rules that are
27
27
  already in `rubocop-default.yml`:
@@ -32,6 +32,33 @@ inherit_gem:
32
32
  - rubocop-default.yml
33
33
  ```
34
34
 
35
+ ### Inherit only some kind of rules
36
+
37
+ The rules are grouped by type so you can choose to inherit only some kind of
38
+ rules:
39
+
40
+ - `rubocop-all.yml`
41
+ - `rubocop-bundler.yml`
42
+ - `rubocop-gemspec.yml`
43
+ - `rubocop-layout.yml`
44
+ - `rubocop-lint.yml`
45
+ - `rubocop-metrics.yml`
46
+ - `rubocop-naming.yml`
47
+ - `rubocop-performance.yml`
48
+ - `rubocop-rails.yml`
49
+ - `rubocop-rspec.yml`
50
+ - `rubocop-security.yml`
51
+ - `rubocop-style.yml`
52
+
53
+ Example:
54
+
55
+ ```yaml
56
+ inherit_gem:
57
+ gitlab-styles:
58
+ - rubocop-gemspec.yml
59
+ - rubocop-naming.yml
60
+ ```
61
+
35
62
  ## Development
36
63
 
37
64
  After checking out the repo, run `bin/setup` to install dependencies.
@@ -19,11 +19,11 @@ Gem::Specification.new do |spec|
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
20
  spec.require_paths = ['lib']
21
21
 
22
- spec.add_dependency 'rubocop', '~> 0.49'
23
- spec.add_dependency 'rubocop-rspec', '~> 1.15'
22
+ spec.add_dependency 'rubocop', '~> 0.51'
24
23
  spec.add_dependency 'rubocop-gitlab-security', '~> 0.1.0'
24
+ spec.add_dependency 'rubocop-rspec', '~> 1.19'
25
25
 
26
- spec.add_development_dependency 'bundler', '~> 1.15'
26
+ spec.add_development_dependency 'bundler', '~> 1.16'
27
27
  spec.add_development_dependency 'rake', '~> 10.0'
28
28
  spec.add_development_dependency 'rspec', '~> 3.0'
29
29
  end
@@ -20,7 +20,7 @@ module Gitlab
20
20
  node.children.last.each_node(:pair) do |pair|
21
21
  key_name = pair.children[0].children[0]
22
22
 
23
- add_offense(pair, :expression) if key_name == :dependent
23
+ add_offense(pair, location: :expression) if key_name == :dependent
24
24
  end
25
25
  end
26
26
  end
@@ -13,7 +13,7 @@ module Gitlab
13
13
  def on_send(node)
14
14
  return unless in_model?(node)
15
15
 
16
- add_offense(node, :selector) if node.children[1] == :serialize
16
+ add_offense(node, location: :selector) if node.children[1] == :serialize
17
17
  end
18
18
  end
19
19
  end
@@ -27,7 +27,7 @@ module Gitlab
27
27
 
28
28
  return unless parent_klass && parent_klass.to_s.end_with?('Error')
29
29
 
30
- add_offense(node, :expression)
30
+ add_offense(node, location: :expression)
31
31
  end
32
32
 
33
33
  def autocorrect(node)
@@ -19,7 +19,7 @@ module Gitlab
19
19
  node.children.last.each_node(:pair) do |pair|
20
20
  key_name = pair.children[0].children[0].to_sym
21
21
  if GIT_KEYS.include?(key_name)
22
- add_offense(node, pair.source_range, MSG)
22
+ add_offense(node, location: pair.source_range, message: MSG)
23
23
  end
24
24
  end
25
25
  end
@@ -11,7 +11,7 @@ module Gitlab
11
11
  def on_send(node)
12
12
  return unless node.children[1] == :in_batches
13
13
 
14
- add_offense(node, :selector)
14
+ add_offense(node, location: :selector)
15
15
  end
16
16
  end
17
17
  end
@@ -17,7 +17,7 @@ module Gitlab
17
17
  node.children.last.each_node(:pair) do |pair|
18
18
  key_name = pair.children[0].children[0]
19
19
 
20
- add_offense(pair, :expression) if key_name == :polymorphic
20
+ add_offense(pair, location: :expression) if key_name == :polymorphic
21
21
  end
22
22
  end
23
23
  end
@@ -20,7 +20,7 @@ module Gitlab
20
20
  methods << pair.children.first.children.first
21
21
  end
22
22
 
23
- add_offense(def_node, :selector) unless methods.include?(:status)
23
+ add_offense(def_node, location: :selector) unless methods.include?(:status)
24
24
  end
25
25
  end
26
26
 
@@ -25,14 +25,14 @@ module Gitlab
25
25
  MESSAGE = "Don't use single-line hook blocks.".freeze
26
26
 
27
27
  def_node_search :rspec_hook?, <<~PATTERN
28
- (send nil {:after :around :before} ...)
28
+ (send nil? {:after :around :before} ...)
29
29
  PATTERN
30
30
 
31
31
  def on_block(node)
32
- return unless rspec_hook?(node)
33
32
  return unless node.single_line?
33
+ return unless rspec_hook?(node)
34
34
 
35
- add_offense(node, :expression, MESSAGE)
35
+ add_offense(node, location: :expression, message: MESSAGE)
36
36
  end
37
37
  end
38
38
  end
@@ -1,5 +1,5 @@
1
1
  module Gitlab
2
2
  module Styles
3
- VERSION = '2.0.0'.freeze
3
+ VERSION = '2.1.0'.freeze
4
4
  end
5
5
  end
@@ -0,0 +1,10 @@
1
+ AllCops:
2
+ TargetRubyVersion: 2.3
3
+ # Cop names are not displayed in offense messages by default. Change behavior
4
+ # by overriding DisplayCopNames, or by giving the -D/--display-cop-names
5
+ # option.
6
+ DisplayCopNames: true
7
+ # Style guide URLs are not displayed in offense messages by default. Change
8
+ # behavior by overriding DisplayStyleGuide, or by giving the
9
+ # -S/--display-style-guide option.
10
+ DisplayStyleGuide: false
@@ -0,0 +1,3 @@
1
+ # Gems in consecutive lines should be alphabetically sorted
2
+ Bundler/OrderedGems:
3
+ Enabled: false
@@ -3,1218 +3,16 @@ require:
3
3
  - rubocop-gitlab-security
4
4
  - ./lib/gitlab/styles/rubocop
5
5
 
6
- AllCops:
7
- TargetRubyVersion: 2.3
8
- # Cop names are not d§splayed in offense messages by default. Change behavior
9
- # by overriding DisplayCopNames, or by giving the -D/--display-cop-names
10
- # option.
11
- DisplayCopNames: true
12
- # Style guide URLs are not displayed in offense messages by default. Change
13
- # behavior by overriding DisplayStyleGuide, or by giving the
14
- # -S/--display-style-guide option.
15
- DisplayStyleGuide: false
16
- # Exclude some GitLab files
17
-
18
- # Gems in consecutive lines should be alphabetically sorted
19
- Bundler/OrderedGems:
20
- Enabled: false
21
-
22
- # Layout ######################################################################
23
-
24
- # Check indentation of private/protected visibility modifiers.
25
- Layout/AccessModifierIndentation:
26
- Enabled: true
27
-
28
- # Align the elements of an array literal if they span more than one line.
29
- Layout/AlignArray:
30
- Enabled: true
31
-
32
- # Align the elements of a hash literal if they span more than one line.
33
- Layout/AlignHash:
34
- Enabled: true
35
-
36
- # Here we check if the parameters on a multi-line method call or
37
- # definition are aligned.
38
- Layout/AlignParameters:
39
- Enabled: false
40
-
41
- # Put end statement of multiline block on its own line.
42
- Layout/BlockEndNewline:
43
- Enabled: true
44
-
45
- # Indentation of when in a case/when/[else/]end.
46
- Layout/CaseIndentation:
47
- Enabled: true
48
-
49
- # Indentation of comments.
50
- Layout/CommentIndentation:
51
- Enabled: true
52
-
53
- # Multi-line method chaining should be done with leading dots.
54
- Layout/DotPosition:
55
- Enabled: true
56
- EnforcedStyle: leading
57
-
58
- # Align elses and elsifs correctly.
59
- Layout/ElseAlignment:
60
- Enabled: true
61
-
62
- # Add an empty line after magic comments to separate them from code.
63
- Layout/EmptyLineAfterMagicComment:
64
- Enabled: false
65
-
66
- # Use empty lines between defs.
67
- Layout/EmptyLineBetweenDefs:
68
- Enabled: true
69
-
70
- # Don't use several empty lines in a row.
71
- Layout/EmptyLines:
72
- Enabled: true
73
-
74
- # Keep blank lines around access modifiers.
75
- Layout/EmptyLinesAroundAccessModifier:
76
- Enabled: true
77
-
78
- # Keeps track of empty lines around block bodies.
79
- Layout/EmptyLinesAroundBlockBody:
80
- Enabled: true
81
-
82
- # Keeps track of empty lines around class bodies.
83
- Layout/EmptyLinesAroundClassBody:
84
- Enabled: true
85
-
86
- # Keeps track of empty lines around exception handling keywords.
87
- Layout/EmptyLinesAroundExceptionHandlingKeywords:
88
- Enabled: false
89
-
90
- # Keeps track of empty lines around method bodies.
91
- Layout/EmptyLinesAroundMethodBody:
92
- Enabled: true
93
-
94
- # Keeps track of empty lines around module bodies.
95
- Layout/EmptyLinesAroundModuleBody:
96
- Enabled: true
97
-
98
- # Use Unix-style line endings.
99
- Layout/EndOfLine:
100
- Enabled: true
101
-
102
- # Checks for a line break before the first parameter in a multi-line method
103
- # parameter definition.
104
- Layout/FirstMethodParameterLineBreak:
105
- Enabled: true
106
-
107
- # Keep indentation straight.
108
- Layout/IndentationConsistency:
109
- Enabled: true
110
-
111
- # Use 2 spaces for indentation.
112
- Layout/IndentationWidth:
113
- Enabled: true
114
-
115
- # Checks the indentation of the first line of the right-hand-side of a
116
- # multi-line assignment.
117
- Layout/IndentAssignment:
118
- Enabled: true
119
-
120
- # This cops checks the indentation of the here document bodies.
121
- Layout/IndentHeredoc:
122
- Enabled: false
123
-
124
- # Comments should start with a space.
125
- Layout/LeadingCommentSpace:
126
- Enabled: true
127
-
128
- # Checks that the closing brace in an array literal is either on the same line
129
- # as the last array element, or a new line.
130
- Layout/MultilineArrayBraceLayout:
131
- Enabled: true
132
- EnforcedStyle: symmetrical
133
-
134
- # Ensures newlines after multiline block do statements.
135
- Layout/MultilineBlockLayout:
136
- Enabled: true
137
-
138
- # Checks that the closing brace in a hash literal is either on the same line as
139
- # the last hash element, or a new line.
140
- Layout/MultilineHashBraceLayout:
141
- Enabled: true
142
- EnforcedStyle: symmetrical
143
-
144
- # Checks that the closing brace in a method call is either on the same line as
145
- # the last method argument, or a new line.
146
- Layout/MultilineMethodCallBraceLayout:
147
- Enabled: false
148
- EnforcedStyle: symmetrical
149
-
150
- # Checks indentation of method calls with the dot operator that span more than
151
- # one line.
152
- Layout/MultilineMethodCallIndentation:
153
- Enabled: false
154
-
155
- # Checks that the closing brace in a method definition is symmetrical with
156
- # respect to the opening brace and the method parameters.
157
- Layout/MultilineMethodDefinitionBraceLayout:
158
- Enabled: false
159
-
160
- # Checks indentation of binary operations that span more than one line.
161
- Layout/MultilineOperationIndentation:
162
- Enabled: true
163
- EnforcedStyle: indented
164
-
165
- # Use spaces after colons.
166
- Layout/SpaceAfterColon:
167
- Enabled: true
168
-
169
- # Use spaces after commas.
170
- Layout/SpaceAfterComma:
171
- Enabled: true
172
-
173
- # Do not put a space between a method name and the opening parenthesis in a
174
- # method definition.
175
- Layout/SpaceAfterMethodName:
176
- Enabled: true
177
-
178
- # Tracks redundant space after the ! operator.
179
- Layout/SpaceAfterNot:
180
- Enabled: true
181
-
182
- # Use spaces after semicolons.
183
- Layout/SpaceAfterSemicolon:
184
- Enabled: true
185
-
186
- # Use space around equals in parameter default
187
- Layout/SpaceAroundEqualsInParameterDefault:
188
- Enabled: true
189
-
190
- # Use a space around keywords if appropriate.
191
- Layout/SpaceAroundKeyword:
192
- Enabled: true
193
-
194
- # Use a single space around operators.
195
- Layout/SpaceAroundOperators:
196
- Enabled: true
197
-
198
- # Checks that block braces have or don't have a space before the opening
199
- # brace depending on configuration.
200
- # Configuration parameters: EnforcedStyle, SupportedStyles.
201
- # SupportedStyles: space, no_space
202
- Layout/SpaceBeforeBlockBraces:
203
- Enabled: true
204
-
205
- # No spaces before commas.
206
- Layout/SpaceBeforeComma:
207
- Enabled: true
208
-
209
- # Checks for missing space between code and a comment on the same line.
210
- Layout/SpaceBeforeComment:
211
- Enabled: true
212
-
213
- # No spaces before semicolons.
214
- Layout/SpaceBeforeSemicolon:
215
- Enabled: true
216
-
217
- # Checks for spaces inside square brackets.
218
- Layout/SpaceInsideBrackets:
219
- Enabled: true
220
-
221
- # Use spaces inside hash literal braces - or don't.
222
- Layout/SpaceInsideHashLiteralBraces:
223
- Enabled: true
224
-
225
- # No spaces inside range literals.
226
- Layout/SpaceInsideRangeLiteral:
227
- Enabled: true
228
-
229
- # Checks for padding/surrounding spaces inside string interpolation.
230
- Layout/SpaceInsideStringInterpolation:
231
- EnforcedStyle: no_space
232
- Enabled: true
233
-
234
- # No hard tabs.
235
- Layout/Tab:
236
- Enabled: true
237
-
238
- # Checks trailing blank lines and final newline.
239
- Layout/TrailingBlankLines:
240
- Enabled: true
241
-
242
- # Avoid trailing whitespace.
243
- Layout/TrailingWhitespace:
244
- Enabled: true
245
-
246
- # Naming ######################################################################
247
-
248
- # Check the naming of accessor methods for get_/set_.
249
- Naming/AccessorMethodName:
250
- Enabled: false
251
-
252
- # Use only ascii symbols in identifiers.
253
- Naming/AsciiIdentifiers:
254
- Enabled: true
255
-
256
- # When defining binary operators, name the argument other.
257
- Naming/BinaryOperatorParameterName:
258
- Enabled: true
259
-
260
- # Use CamelCase for classes and modules.'
261
- Naming/ClassAndModuleCamelCase:
262
- Enabled: true
263
-
264
- # Constants should use SCREAMING_SNAKE_CASE.
265
- Naming/ConstantName:
266
- Enabled: true
267
-
268
- # Use snake_case for source file names.
269
- Naming/FileName:
270
- Enabled: true
271
-
272
- # Use the configured style when naming methods.
273
- Naming/MethodName:
274
- Enabled: true
275
-
276
- # Use `spam?` instead of `is_spam?`
277
- # Configuration parameters: NamePrefix, NamePrefixBlacklist, NameWhitelist.
278
- # NamePrefix: is_, has_, have_
279
- # NamePrefixBlacklist: is_, has_, have_
280
- # NameWhitelist: is_a?
281
- Naming/PredicateName:
282
- Enabled: true
283
- NamePrefixBlacklist: is_
284
- Exclude:
285
- - 'spec/**/*'
286
- - 'features/**/*'
287
-
288
- # Use the configured style when naming variables.
289
- Naming/VariableName:
290
- EnforcedStyle: snake_case
291
- Enabled: true
292
-
293
- # Use the configured style when numbering variables.
294
- Naming/VariableNumber:
295
- Enabled: false
296
-
297
- # Style #######################################################################
298
-
299
- # Use alias_method instead of alias.
300
- Style/Alias:
301
- EnforcedStyle: prefer_alias_method
302
- Enabled: true
303
-
304
- # Whether `and` and `or` are banned only in conditionals (conditionals)
305
- # or completely (always).
306
- Style/AndOr:
307
- Enabled: true
308
-
309
- # Use `Array#join` instead of `Array#*`.
310
- Style/ArrayJoin:
311
- Enabled: true
312
-
313
- # Use only ascii symbols in comments.
314
- Style/AsciiComments:
315
- Enabled: true
316
-
317
- # Checks for uses of Module#attr.
318
- Style/Attr:
319
- Enabled: true
320
-
321
- # Avoid the use of BEGIN blocks.
322
- Style/BeginBlock:
323
- Enabled: true
324
-
325
- # Do not use block comments.
326
- Style/BlockComments:
327
- Enabled: true
328
-
329
- # Avoid using {...} for multi-line blocks (multiline chaining is # always
330
- # ugly). Prefer {...} over do...end for single-line blocks.
331
- Style/BlockDelimiters:
332
- Enabled: true
333
-
334
- # This cop checks for braces around the last parameter in a method call
335
- # if the last parameter is a hash.
336
- Style/BracesAroundHashParameters:
337
- Enabled: false
338
-
339
- # This cop checks for uses of the case equality operator(===).
340
- Style/CaseEquality:
341
- Enabled: false
342
-
343
- # Checks for uses of character literals.
344
- Style/CharacterLiteral:
345
- Enabled: true
346
-
347
- # Checks style of children classes and modules.
348
- Style/ClassAndModuleChildren:
349
- Enabled: false
350
-
351
- # Enforces consistent use of `Object#is_a?` or `Object#kind_of?`.
352
- Style/ClassCheck:
353
- Enabled: true
354
-
355
- # Use self when defining module/class methods.
356
- Style/ClassMethods:
357
- Enabled: true
358
-
359
- # Avoid the use of class variables.
360
- Style/ClassVars:
361
- Enabled: true
362
-
363
- # This cop checks for methods invoked via the :: operator instead
364
- # of the . operator (like FileUtils::rmdir instead of FileUtils.rmdir).
365
- Style/ColonMethodCall:
366
- Enabled: true
367
-
368
- # This cop checks that comment annotation keywords are written according
369
- # to guidelines.
370
- Style/CommentAnnotation:
371
- Enabled: false
372
-
373
- # Check for `if` and `case` statements where each branch is used for
374
- # assignment to the same variable when using the return of the
375
- # condition can be used instead.
376
- Style/ConditionalAssignment:
377
- Enabled: true
378
-
379
- # Use def with parentheses when there are arguments.
380
- Style/DefWithParentheses:
381
- Enabled: true
382
-
383
- # Document classes and non-namespace modules.
384
- Style/Documentation:
385
- Enabled: false
386
-
387
- # This cop checks for uses of double negation (!!) to convert something
388
- # to a boolean value. As this is both cryptic and usually redundant, it
389
- # should be avoided.
390
- Style/DoubleNegation:
391
- Enabled: false
392
-
393
- # Avoid the use of END blocks.
394
- Style/EndBlock:
395
- Enabled: true
396
-
397
- # Favor the use of Fixnum#even? && Fixnum#odd?
398
- Style/EvenOdd:
399
- Enabled: true
400
-
401
- # Checks for flip flops.
402
- Style/FlipFlop:
403
- Enabled: true
404
-
405
- # Checks use of for or each in multiline loops.
406
- Style/For:
407
- Enabled: true
408
-
409
- # Use a consistent style for format string tokens.
410
- Style/FormatStringToken:
411
- Enabled: false
412
-
413
- # Checks if there is a magic comment to enforce string literals
414
- Style/FrozenStringLiteralComment:
415
- Enabled: false
416
-
417
- # Do not introduce global variables.
418
- Style/GlobalVars:
419
- Enabled: true
420
- Exclude:
421
- - 'lib/backup/**/*'
422
- - 'lib/tasks/**/*'
423
-
424
- # Prefer Ruby 1.9 hash syntax `{ a: 1, b: 2 }`
425
- # over 1.8 syntax `{ :a => 1, :b => 2 }`.
426
- Style/HashSyntax:
427
- Enabled: true
428
-
429
- # Checks that conditional statements do not have an identical line at the
430
- # end of each branch, which can validly be moved out of the conditional.
431
- Style/IdenticalConditionalBranches:
432
- Enabled: true
433
-
434
- # Do not use if x; .... Use the ternary operator instead.
435
- Style/IfWithSemicolon:
436
- Enabled: true
437
-
438
- # Use Kernel#loop for infinite loops.
439
- Style/InfiniteLoop:
440
- Enabled: true
441
-
442
- # Use the inverse method instead of `!.method`
443
- # if an inverse method is defined.
444
- Style/InverseMethods:
445
- Enabled: false
446
-
447
- # Use lambda.call(...) instead of lambda.(...).
448
- Style/LambdaCall:
449
- Enabled: true
450
-
451
- # Checks if the method definitions have or don't have parentheses.
452
- Style/MethodDefParentheses:
453
- Enabled: true
454
-
455
- # Checks for usage of `extend self` in modules.
456
- Style/ModuleFunction:
457
- Enabled: false
458
-
459
- # Avoid multi-line chains of blocks.
460
- Style/MultilineBlockChain:
461
- Enabled: true
462
-
463
- # Do not use then for multi-line if/unless.
464
- Style/MultilineIfThen:
465
- Enabled: true
466
-
467
- # Avoid multi-line `? :` (the ternary operator), use if/unless instead.
468
- Style/MultilineTernaryOperator:
469
- Enabled: true
470
-
471
- # Avoid comparing a variable with multiple items in a conditional,
472
- # use Array#include? instead.
473
- Style/MultipleComparison:
474
- Enabled: false
475
-
476
- # This cop checks whether some constant value isn't a
477
- # mutable literal (e.g. array or hash).
478
- Style/MutableConstant:
479
- Enabled: true
480
- Exclude:
481
- - 'db/migrate/**/*'
482
- - 'db/post_migrate/**/*'
483
- - 'db/geo/migrate/**/*'
484
-
485
- # Favor unless over if for negative conditions (or control flow or).
486
- Style/NegatedIf:
487
- Enabled: true
488
-
489
- # Avoid using nested modifiers.
490
- Style/NestedModifier:
491
- Enabled: true
492
-
493
- # Use one expression per branch in a ternary operator.
494
- Style/NestedTernaryOperator:
495
- Enabled: true
496
-
497
- # Prefer x.nil? to x == nil.
498
- Style/NilComparison:
499
- Enabled: true
500
-
501
- # Checks for redundant nil checks.
502
- Style/NonNilCheck:
503
- Enabled: true
504
-
505
- # Use ! instead of not.
506
- Style/Not:
507
- Enabled: true
508
-
509
- # Add underscores to large numeric literals to improve their readability.
510
- Style/NumericLiterals:
511
- Enabled: false
512
-
513
- # Favor the ternary operator(?:) over if/then/else/end constructs.
514
- Style/OneLineConditional:
515
- Enabled: true
516
-
517
- # Don't use parentheses around the condition of an if/unless/while.
518
- Style/ParenthesesAroundCondition:
519
- Enabled: true
520
-
521
- # This cop (by default) checks for uses of methods Hash#has_key? and
522
- # Hash#has_value? where it enforces Hash#key? and Hash#value?
523
- # It is configurable to enforce the inverse, using `verbose` method
524
- # names also.
525
- # Configuration parameters: EnforcedStyle, SupportedStyles.
526
- # SupportedStyles: short, verbose
527
- Style/PreferredHashMethods:
528
- Enabled: false
529
-
530
- # Checks for an obsolete RuntimeException argument in raise/fail.
531
- Style/RedundantException:
532
- Enabled: true
533
-
534
- # Checks for parentheses that seem not to serve any purpose.
535
- Style/RedundantParentheses:
536
- Enabled: true
537
-
538
- # Don't use semicolons to terminate expressions.
539
- Style/Semicolon:
540
- Enabled: true
541
-
542
- # Checks for proper usage of fail and raise.
543
- Style/SignalException:
544
- EnforcedStyle: only_raise
545
- Enabled: true
546
-
547
- # Check for the usage of parentheses around stabby lambda arguments.
548
- Style/StabbyLambdaParentheses:
549
- EnforcedStyle: require_parentheses
550
- Enabled: true
551
-
552
- # Checks if uses of quotes match the configured preference.
553
- Style/StringLiterals:
554
- Enabled: false
555
-
556
- # Checks if configured preferred methods are used over non-preferred.
557
- Style/StringMethods:
558
- PreferredMethods:
559
- intern: to_sym
560
- Enabled: true
561
-
562
- # Use %i or %I for arrays of symbols.
563
- Style/SymbolArray:
564
- Enabled: false
565
-
566
- # This cop checks for trailing comma in array and hash literals.
567
- Style/TrailingCommaInLiteral:
568
- Enabled: true
569
- EnforcedStyleForMultiline: no_comma
570
-
571
- # This cop checks for trailing comma in argument lists.
572
- Style/TrailingCommaInArguments:
573
- Enabled: true
574
- EnforcedStyleForMultiline: no_comma
575
-
576
- # Checks for %W when interpolation is not needed.
577
- Style/UnneededCapitalW:
578
- Enabled: true
579
-
580
- # Checks for %q/%Q when single quotes or double quotes would do.
581
- Style/UnneededPercentQ:
582
- Enabled: false
583
-
584
- # Don't interpolate global, instance and class variables directly in strings.
585
- Style/VariableInterpolation:
586
- Enabled: true
587
-
588
- # Use when x then ... for one-line cases.
589
- Style/WhenThen:
590
- Enabled: true
591
-
592
- # Checks for redundant do after while or until.
593
- Style/WhileUntilDo:
594
- Enabled: true
595
-
596
- # Favor modifier while/until usage when you have a single-line body.
597
- Style/WhileUntilModifier:
598
- Enabled: true
599
-
600
- # Use %w or %W for arrays of words.
601
- Style/WordArray:
602
- Enabled: true
603
-
604
- # Do not use literals as the first operand of a comparison.
605
- Style/YodaCondition:
606
- Enabled: false
607
-
608
- # Use `proc` instead of `Proc.new`.
609
- Style/Proc:
610
- Enabled: true
611
-
612
- # Metrics #####################################################################
613
-
614
- # A calculated magnitude based on number of assignments,
615
- # branches, and conditions.
616
- Metrics/AbcSize:
617
- Enabled: true
618
- Max: 55.25
619
-
620
- # This cop checks if the length of a block exceeds some maximum value.
621
- Metrics/BlockLength:
622
- Enabled: false
623
-
624
- # Avoid excessive block nesting.
625
- Metrics/BlockNesting:
626
- Enabled: true
627
- Max: 4
628
-
629
- # Avoid classes longer than 100 lines of code.
630
- Metrics/ClassLength:
631
- Enabled: false
632
-
633
- # A complexity metric that is strongly correlated to the number
634
- # of test cases needed to validate a method.
635
- Metrics/CyclomaticComplexity:
636
- Enabled: true
637
- Max: 13
638
-
639
- # Limit lines to 80 characters.
640
- Metrics/LineLength:
641
- Enabled: false
642
-
643
- # Avoid methods longer than 10 lines of code.
644
- Metrics/MethodLength:
645
- Enabled: false
646
-
647
- # Avoid modules longer than 100 lines of code.
648
- Metrics/ModuleLength:
649
- Enabled: false
650
-
651
- # Avoid parameter lists longer than three or four parameters.
652
- Metrics/ParameterLists:
653
- Enabled: true
654
- Max: 8
655
-
656
- # A complexity metric geared towards measuring complexity for a human reader.
657
- Metrics/PerceivedComplexity:
658
- Enabled: true
659
- Max: 15
660
-
661
- # Lint ########################################################################
662
-
663
- # Checks for ambiguous block association with method when param passed without
664
- # parentheses.
665
- Lint/AmbiguousBlockAssociation:
666
- Enabled: false
667
-
668
- # Checks for ambiguous operators in the first argument of a method invocation
669
- # without parentheses.
670
- Lint/AmbiguousOperator:
671
- Enabled: true
672
-
673
- # This cop checks for ambiguous regexp literals in the first argument of
674
- # a method invocation without parentheses.
675
- Lint/AmbiguousRegexpLiteral:
676
- Enabled: false
677
-
678
- # This cop checks for assignments in the conditions of
679
- # if/while/until.
680
- Lint/AssignmentInCondition:
681
- Enabled: false
682
-
683
- # Align block ends correctly.
684
- Lint/BlockAlignment:
685
- Enabled: true
686
-
687
- # Default values in optional keyword arguments and optional ordinal arguments
688
- # should not refer back to the name of the argument.
689
- Lint/CircularArgumentReference:
690
- Enabled: true
691
-
692
- # Checks for condition placed in a confusing position relative to the keyword.
693
- Lint/ConditionPosition:
694
- Enabled: true
695
-
696
- # Check for debugger calls.
697
- Lint/Debugger:
698
- Enabled: true
699
-
700
- # Align ends corresponding to defs correctly.
701
- Lint/DefEndAlignment:
702
- Enabled: true
703
-
704
- # Check for deprecated class method calls.
705
- Lint/DeprecatedClassMethods:
706
- Enabled: true
707
-
708
- # Check for immutable argument given to each_with_object.
709
- Lint/EachWithObjectArgument:
710
- Enabled: true
711
-
712
- # Check for odd code arrangement in an else block.
713
- Lint/ElseLayout:
714
- Enabled: true
715
-
716
- # Checks for empty ensure block.
717
- Lint/EmptyEnsure:
718
- Enabled: true
719
-
720
- # Checks for the presence of `when` branches without a body.
721
- Lint/EmptyWhen:
722
- Enabled: true
723
-
724
- # Align ends correctly.
725
- Lint/EndAlignment:
726
- Enabled: true
727
-
728
- # END blocks should not be placed inside method definitions.
729
- Lint/EndInMethod:
730
- Enabled: true
731
-
732
- # Do not use return in an ensure block.
733
- Lint/EnsureReturn:
734
- Enabled: true
735
-
736
- # Catches floating-point literals too large or small for Ruby to represent.
737
- Lint/FloatOutOfRange:
738
- Enabled: true
739
-
740
- # The number of parameters to format/sprint must match the fields.
741
- Lint/FormatParameterMismatch:
742
- Enabled: true
743
-
744
- # This cop checks for *rescue* blocks with no body.
745
- Lint/HandleExceptions:
746
- Enabled: false
747
-
748
- # Checks for adjacent string literals on the same line, which could better be
749
- # represented as a single string literal.
750
- Lint/ImplicitStringConcatenation:
751
- Enabled: true
752
-
753
- # Checks for attempts to use `private` or `protected` to set the visibility
754
- # of a class method, which does not work.
755
- Lint/IneffectiveAccessModifier:
756
- Enabled: false
757
-
758
- # Checks for invalid character literals with a non-escaped whitespace
759
- # character.
760
- Lint/InvalidCharacterLiteral:
761
- Enabled: true
762
-
763
- # Checks of literals used in conditions.
764
- Lint/LiteralInCondition:
765
- Enabled: true
766
-
767
- # Checks for literals used in interpolation.
768
- Lint/LiteralInInterpolation:
769
- Enabled: true
770
-
771
- # This cop checks for uses of *begin...end while/until something*.
772
- Lint/Loop:
773
- Enabled: false
774
-
775
- # Do not use nested method definitions.
776
- Lint/NestedMethodDefinition:
777
- Enabled: true
778
-
779
- # Do not omit the accumulator when calling `next` in a `reduce`/`inject` block.
780
- Lint/NextWithoutAccumulator:
781
- Enabled: true
782
-
783
- # Checks for method calls with a space before the opening parenthesis.
784
- Lint/ParenthesesAsGroupedExpression:
785
- Enabled: true
786
-
787
- # Checks for `rand(1)` calls. Such calls always return `0` and most likely
788
- # a mistake.
789
- Lint/RandOne:
790
- Enabled: true
791
-
792
- # Use parentheses in the method call to avoid confusion about precedence.
793
- Lint/RequireParentheses:
794
- Enabled: true
795
-
796
- # Avoid rescuing the Exception class.
797
- Lint/RescueException:
798
- Enabled: true
799
-
800
- # Checks for the order which exceptions are rescued to avoid rescueing a less specific exception before a more specific exception.
801
- Lint/ShadowedException:
802
- Enabled: false
803
-
804
- # This cop looks for use of the same name as outer local variables
805
- # for block arguments or block local variables.
806
- Lint/ShadowingOuterLocalVariable:
807
- Enabled: false
808
-
809
- # Checks for Object#to_s usage in string interpolation.
810
- Lint/StringConversionInInterpolation:
811
- Enabled: true
812
-
813
- # Do not use prefix `_` for a variable that is used.
814
- Lint/UnderscorePrefixedVariableName:
815
- Enabled: true
816
-
817
- # This cop checks for using Fixnum or Bignum constant
818
- Lint/UnifiedInteger:
819
- Enabled: true
820
-
821
- # Checks for rubocop:disable comments that can be removed.
822
- # Note: this cop is not disabled when disabling all cops.
823
- # It must be explicitly disabled.
824
- Lint/UnneededDisable:
825
- Enabled: false
826
-
827
- # This cop checks for unneeded usages of splat expansion
828
- Lint/UnneededSplatExpansion:
829
- Enabled: false
830
-
831
- # Unreachable code.
832
- Lint/UnreachableCode:
833
- Enabled: true
834
-
835
- # This cop checks for unused block arguments.
836
- Lint/UnusedBlockArgument:
837
- Enabled: false
838
-
839
- # This cop checks for unused method arguments.
840
- Lint/UnusedMethodArgument:
841
- Enabled: false
842
-
843
- # Checks for useless access modifiers.
844
- Lint/UselessAccessModifier:
845
- Enabled: true
846
-
847
- # Checks for useless assignment to a local variable.
848
- Lint/UselessAssignment:
849
- Enabled: true
850
-
851
- # Checks for comparison of something with itself.
852
- Lint/UselessComparison:
853
- Enabled: true
854
-
855
- # Checks for useless `else` in `begin..end` without `rescue`.
856
- Lint/UselessElseWithoutRescue:
857
- Enabled: true
858
-
859
- # Checks for useless setter call to a local variable.
860
- Lint/UselessSetterCall:
861
- Enabled: true
862
-
863
- # Possible use of operator/literal/variable in void context.
864
- Lint/Void:
865
- Enabled: true
866
-
867
- # Performance #################################################################
868
-
869
- # Use `caller(n..n)` instead of `caller`.
870
- Performance/Caller:
871
- Enabled: false
872
-
873
- # Use `casecmp` rather than `downcase ==`.
874
- Performance/Casecmp:
875
- Enabled: true
876
-
877
- # Use `str.{start,end}_with?(x, ..., y, ...)` instead of
878
- # `str.{start,end}_with?(x, ...) || str.{start,end}_with?(y, ...)`.
879
- Performance/DoubleStartEndWith:
880
- Enabled: true
881
-
882
- # Use `strip` instead of `lstrip.rstrip`.
883
- Performance/LstripRstrip:
884
- Enabled: true
885
-
886
- # Use `Range#cover?` instead of `Range#include?`.
887
- Performance/RangeInclude:
888
- Enabled: true
889
-
890
- # This cop identifies the use of a `&block` parameter and `block.call`
891
- # where `yield` would do just as well.
892
- Performance/RedundantBlockCall:
893
- Enabled: true
894
-
895
- # This cop identifies use of `Regexp#match` or `String#match in a context
896
- # where the integral return value of `=~` would do just as well.
897
- Performance/RedundantMatch:
898
- Enabled: true
899
-
900
- # This cop identifies places where `Hash#merge!` can be replaced by
901
- # `Hash#[]=`.
902
- Performance/RedundantMerge:
903
- Enabled: true
904
- MaxKeyValuePairs: 1
905
-
906
- # Use `sort` instead of `sort_by { |x| x }`.
907
- Performance/RedundantSortBy:
908
- Enabled: true
909
-
910
- # Use `start_with?` instead of a regex match anchored to the beginning of a
911
- # string.
912
- Performance/StartWith:
913
- Enabled: true
914
-
915
- # Use `tr` instead of `gsub` when you are replacing the same number of
916
- # characters. Use `delete` instead of `gsub` when you are deleting
917
- # characters.
918
- Performance/StringReplacement:
919
- Enabled: true
920
-
921
- # Checks for `.times.map` calls.
922
- Performance/TimesMap:
923
- Enabled: true
924
-
925
- # Security ####################################################################
926
-
927
- # This cop checks for the use of JSON class methods which have potential
928
- # security issues.
929
- Security/JSONLoad:
930
- Enabled: true
931
-
932
- # This cop checks for the use of *Kernel#eval*.
933
- Security/Eval:
934
- Enabled: true
935
-
936
- # Rails #######################################################################
937
-
938
- # Enables Rails cops.
939
- Rails:
940
- Enabled: true
941
-
942
- # Enforces consistent use of action filter methods.
943
- Rails/ActionFilter:
944
- Enabled: true
945
- EnforcedStyle: action
946
-
947
- # Check that models subclass ApplicationRecord.
948
- Rails/ApplicationRecord:
949
- Enabled: false
950
-
951
- # Enforce using `blank?` and `present?`.
952
- Rails/Blank:
953
- Enabled: false
954
-
955
- # Checks the correct usage of date aware methods, such as `Date.today`,
956
- # `Date.current`, etc.
957
- Rails/Date:
958
- Enabled: false
959
-
960
- # Prefer delegate method for delegations.
961
- # Disabled per https://gitlab.com/gitlab-org/gitlab-ce/issues/35869
962
- Rails/Delegate:
963
- Enabled: false
964
-
965
- # This cop checks dynamic `find_by_*` methods.
966
- Rails/DynamicFindBy:
967
- Enabled: false
968
-
969
- # This cop enforces that 'exit' calls are not used within a rails app.
970
- Rails/Exit:
971
- Enabled: true
972
- Exclude:
973
- - lib/gitlab/upgrader.rb
974
- - 'lib/backup/**/*'
975
-
976
- # Prefer `find_by` over `where.first`.
977
- Rails/FindBy:
978
- Enabled: true
979
-
980
- # Prefer `all.find_each` over `all.find`.
981
- Rails/FindEach:
982
- Enabled: true
983
-
984
- # Prefer has_many :through to has_and_belongs_to_many.
985
- Rails/HasAndBelongsToMany:
986
- Enabled: true
987
-
988
- # This cop is used to identify usages of http methods like `get`, `post`,
989
- # `put`, `patch` without the usage of keyword arguments in your tests and
990
- # change them to use keyword args.
991
- Rails/HttpPositionalArguments:
992
- Enabled: false
993
-
994
- # Checks for calls to puts, print, etc.
995
- Rails/Output:
996
- Enabled: true
997
- Exclude:
998
- - lib/gitlab/seeder.rb
999
- - lib/gitlab/upgrader.rb
1000
- - 'lib/backup/**/*'
1001
- - 'lib/tasks/**/*'
1002
-
1003
- # This cop checks for the use of output safety calls like html_safe and
1004
- # raw.
1005
- Rails/OutputSafety:
1006
- Enabled: false
1007
-
1008
- # Checks for incorrect grammar when using methods like `3.day.ago`.
1009
- Rails/PluralizationGrammar:
1010
- Enabled: true
1011
-
1012
- # Enforce using `blank?` and `present?`.
1013
- Rails/Present:
1014
- Enabled: false
1015
-
1016
- # Checks for `read_attribute(:attr)` and `write_attribute(:attr, val)`.
1017
- Rails/ReadWriteAttribute:
1018
- Enabled: false
1019
-
1020
- # Do not assign relative date to constants.
1021
- Rails/RelativeDateConstant:
1022
- Enabled: false
1023
-
1024
- # Checks the arguments of ActiveRecord scopes.
1025
- Rails/ScopeArgs:
1026
- Enabled: true
1027
-
1028
- # This cop checks for the use of Time methods without zone.
1029
- Rails/TimeZone:
1030
- Enabled: false
1031
-
1032
- # This cop checks for the use of old-style attribute validation macros.
1033
- Rails/Validation:
1034
- Enabled: true
1035
-
1036
- # RSpec #######################################################################
1037
-
1038
- # Check that instances are not being stubbed globally.
1039
- RSpec/AnyInstance:
1040
- Enabled: false
1041
-
1042
- # Check for expectations where `be(...)` can replace `eql(...)`.
1043
- RSpec/BeEql:
1044
- Enabled: true
1045
-
1046
- # We don't enforce this as we use this technique in a few places.
1047
- RSpec/BeforeAfterAll:
1048
- Enabled: false
1049
-
1050
- # Check that the first argument to the top level describe is the tested class or
1051
- # module.
1052
- RSpec/DescribeClass:
1053
- Enabled: false
1054
-
1055
- # Checks that the second argument to `describe` specifies a method.
1056
- RSpec/DescribeMethod:
1057
- Enabled: false
1058
-
1059
- # Avoid describing symbols.
1060
- RSpec/DescribeSymbol:
1061
- Enabled: true
1062
-
1063
- # Checks that tests use `described_class`.
1064
- RSpec/DescribedClass:
1065
- Enabled: true
1066
-
1067
- # Checks if an example group does not include any tests.
1068
- RSpec/EmptyExampleGroup:
1069
- Enabled: true
1070
- CustomIncludeMethods:
1071
- - run_permission_checks
1072
- - run_group_permission_checks
1073
- - it_should_email!
1074
- - it_should_not_email!
1075
-
1076
- # Checks for long example.
1077
- RSpec/ExampleLength:
1078
- Enabled: false
1079
- Max: 5
1080
-
1081
- # Do not use should when describing your tests.
1082
- RSpec/ExampleWording:
1083
- Enabled: false
1084
- CustomTransform:
1085
- be: is
1086
- have: has
1087
- not: does not
1088
- IgnoredWords: []
1089
-
1090
- # Checks for `expect(...)` calls containing literal values.
1091
- RSpec/ExpectActual:
1092
- Enabled: true
1093
-
1094
- # Checks for opportunities to use `expect { … }.to output`.
1095
- RSpec/ExpectOutput:
1096
- Enabled: true
1097
-
1098
- # Checks the file and folder naming of the spec file.
1099
- RSpec/FilePath:
1100
- Enabled: true
1101
- IgnoreMethods: true
1102
- Exclude:
1103
- - 'qa/**/*'
1104
- - 'spec/javascripts/fixtures/*'
1105
- - 'spec/requests/api/v3/*'
1106
-
1107
- # Checks if there are focused specs.
1108
- RSpec/Focus:
1109
- Enabled: true
1110
-
1111
- # Checks the arguments passed to `before`, `around`, and `after`.
1112
- RSpec/HookArgument:
1113
- Enabled: true
1114
- EnforcedStyle: implicit
1115
-
1116
- # Configuration parameters: EnforcedStyle, SupportedStyles.
1117
- # SupportedStyles: is_expected, should
1118
- RSpec/ImplicitExpect:
1119
- Enabled: true
1120
- EnforcedStyle: is_expected
1121
-
1122
- # Checks for the usage of instance variables.
1123
- RSpec/InstanceVariable:
1124
- Enabled: false
1125
-
1126
- # Checks for `subject` definitions that come after `let` definitions.
1127
- RSpec/LeadingSubject:
1128
- Enabled: false
1129
-
1130
- # Checks unreferenced `let!` calls being used for test setup.
1131
- RSpec/LetSetup:
1132
- Enabled: false
1133
-
1134
- # Check that chains of messages are not being stubbed.
1135
- RSpec/MessageChain:
1136
- Enabled: false
1137
-
1138
- # Checks that message expectations are set using spies.
1139
- RSpec/MessageSpies:
1140
- Enabled: false
1141
-
1142
- # Checks for multiple top-level describes.
1143
- RSpec/MultipleDescribes:
1144
- Enabled: false
1145
-
1146
- # Checks if examples contain too many `expect` calls.
1147
- RSpec/MultipleExpectations:
1148
- Enabled: false
1149
-
1150
- # Checks for explicitly referenced test subjects.
1151
- RSpec/NamedSubject:
1152
- Enabled: false
1153
-
1154
- # Checks for nested example groups.
1155
- RSpec/NestedGroups:
1156
- Enabled: false
1157
-
1158
- # Enforces the usage of the same method on all negative message expectations.
1159
- RSpec/NotToNot:
1160
- EnforcedStyle: not_to
1161
- Enabled: true
1162
-
1163
- # Check for repeated description strings in example groups.
1164
- RSpec/RepeatedDescription:
1165
- Enabled: false
1166
-
1167
- # Ensure RSpec hook blocks are always multi-line.
1168
- RSpec/SingleLineHook:
1169
- Enabled: true
1170
- Exclude:
1171
- - 'spec/factories/*'
1172
- - 'spec/requests/api/v3/*'
1173
-
1174
- # Checks for stubbed test subjects.
1175
- RSpec/SubjectStub:
1176
- Enabled: false
1177
-
1178
- # Prefer using verifying doubles over normal doubles.
1179
- RSpec/VerifiedDoubles:
1180
- Enabled: false
1181
-
1182
- # GitlabSecurity ##############################################################
1183
-
1184
- GitlabSecurity/DeepMunge:
1185
- Enabled: true
1186
- Exclude:
1187
- - 'lib/**/*.rake'
1188
- - 'spec/**/*'
1189
-
1190
- # To be enabled by https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/13610
1191
- GitlabSecurity/JsonSerialization:
1192
- Enabled: false
1193
-
1194
- GitlabSecurity/PublicSend:
1195
- Enabled: true
1196
- Exclude:
1197
- - 'config/**/*'
1198
- - 'db/**/*'
1199
- - 'features/**/*'
1200
- - 'lib/**/*.rake'
1201
- - 'qa/**/*'
1202
- - 'spec/**/*'
1203
-
1204
- GitlabSecurity/RedirectToParamsUpdate:
1205
- Enabled: true
1206
- Exclude:
1207
- - 'lib/**/*.rake'
1208
- - 'spec/**/*'
1209
-
1210
- GitlabSecurity/SqlInjection:
1211
- Enabled: true
1212
- Exclude:
1213
- - 'lib/**/*.rake'
1214
- - 'spec/**/*'
1215
-
1216
- GitlabSecurity/SystemCommandInjection:
1217
- Enabled: true
1218
- Exclude:
1219
- - 'lib/**/*.rake'
1220
- - 'spec/**/*'
6
+ inherit_from:
7
+ - rubocop-all.yml
8
+ - rubocop-bundler.yml
9
+ - rubocop-gemspec.yml
10
+ - rubocop-layout.yml
11
+ - rubocop-lint.yml
12
+ - rubocop-metrics.yml
13
+ - rubocop-naming.yml
14
+ - rubocop-performance.yml
15
+ - rubocop-rails.yml
16
+ - rubocop-rspec.yml
17
+ - rubocop-security.yml
18
+ - rubocop-style.yml