gitlab-styles 2.0.0 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
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