cookstyle 1.4.0 → 2.0.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.
@@ -9,24 +9,51 @@ inherit_from:
9
9
  AllCops:
10
10
  # Include common Ruby source files.
11
11
  Include:
12
+ - '**/*.builder'
13
+ - '**/*.fcgi'
12
14
  - '**/*.gemspec'
13
- - '**/*.podspec'
15
+ - '**/*.god'
16
+ - '**/*.jb'
14
17
  - '**/*.jbuilder'
15
- - '**/*.rake'
18
+ - '**/*.mspec'
16
19
  - '**/*.opal'
20
+ - '**/*.pluginspec'
21
+ - '**/*.podspec'
22
+ - '**/*.rabl'
23
+ - '**/*.rake'
24
+ - '**/*.rbuild'
25
+ - '**/*.rbw'
26
+ - '**/*.rbx'
27
+ - '**/*.ru'
28
+ - '**/*.ruby'
29
+ - '**/*.spec'
30
+ - '**/*.thor'
31
+ - '**/*.watchr'
32
+ - '**/.irbrc'
33
+ - '**/.pryrc'
34
+ - '**/buildfile'
17
35
  - '**/config.ru'
18
- - '**/Gemfile'
19
- - '**/Rakefile'
36
+ - '**/Appraisals'
37
+ - '**/Berksfile'
38
+ - '**/Brewfile'
39
+ - '**/Buildfile'
20
40
  - '**/Capfile'
41
+ - '**/Cheffile'
42
+ - '**/Dangerfile'
43
+ - '**/Deliverfile'
44
+ - '**/Fastfile'
45
+ - '**/*Fastfile'
46
+ - '**/Gemfile'
21
47
  - '**/Guardfile'
48
+ - '**/Jarfile'
49
+ - '**/Mavenfile'
22
50
  - '**/Podfile'
51
+ - '**/Puppetfile'
52
+ - '**/Rakefile'
53
+ - '**/Snapfile'
23
54
  - '**/Thorfile'
24
- - '**/Vagrantfile'
25
- - '**/Berksfile'
26
- - '**/Cheffile'
27
55
  - '**/Vagabondfile'
28
- - '**/Fastfile'
29
- - '**/*Fastfile'
56
+ - '**/Vagrantfile'
30
57
  Exclude:
31
58
  - 'vendor/**/*'
32
59
  # Default formatter will be used if no `-f/--format` option is given.
@@ -51,11 +78,17 @@ AllCops:
51
78
  # the `--only-guide-cops` option.
52
79
  StyleGuideCopsOnly: false
53
80
  # All cops except the ones in disabled.yml are enabled by default. Change
54
- # this behavior by overriding `DisabledByDefault`. When `DisabledByDefault` is
55
- # `true`, all cops in the default configuration are disabled, and only cops
56
- # in user configuration are enabled. This makes cops opt-in instead of
57
- # opt-out. Note that when `DisabledByDefault` is `true`, cops in user
58
- # configuration will be enabled even if they don't set the Enabled parameter.
81
+ # this behavior by overriding either `DisabledByDefault` or `EnabledByDefault`.
82
+ # When `DisabledByDefault` is `true`, all cops in the default configuration
83
+ # are disabled, and only cops in user configuration are enabled. This makes
84
+ # cops opt-in instead of opt-out. Note that when `DisabledByDefault` is `true`,
85
+ # cops in user configuration will be enabled even if they don't set the
86
+ # Enabled parameter.
87
+ # When `EnabledByDefault` is `true`, all cops, even those in disabled.yml,
88
+ # are enabled by default. Cops can still be disabled in user configuration.
89
+ # Note that it is invalid to set both EnabledByDefault and DisabledByDefault
90
+ # to true in the same configuration.
91
+ EnabledByDefault: false
59
92
  DisabledByDefault: false
60
93
  # Enables the result cache if `true`. Can be overridden by the `--cache` command
61
94
  # line option.
@@ -63,18 +96,17 @@ AllCops:
63
96
  # Threshold for how many files can be stored in the result cache before some
64
97
  # of the files are automatically removed.
65
98
  MaxFilesInCache: 20000
66
- # The cache will be stored in "rubocop_cache" under this directory. The name
67
- # "/tmp" is special and will be converted to the system temporary directory,
68
- # which is "/tmp" on Unix-like systems, but could be something else on other
69
- # systems.
70
- CacheRootDirectory: /tmp
71
- # The default cache root directory is /tmp, which on most systems is
72
- # writable by any system user. This means that it is possible for a
73
- # malicious user to anticipate the location of Rubocop's cache directory,
74
- # and create a symlink in its place that could cause Rubocop to overwrite
75
- # unintended files, or read malicious input. If you are certain that your
76
- # cache location is secure from this kind of attack, and wish to use a
77
- # symlinked cache location, set this value to "true".
99
+ # The cache will be stored in "rubocop_cache" under this directory. If
100
+ # CacheRootDirectory is ~ (nil), which it is by default, the root will be
101
+ # taken from the environment variable `$XDG_CACHE_HOME` if it is set, or if
102
+ # `$XDG_CACHE_HOME` is not set, it will be `$HOME/.cache/`.
103
+ CacheRootDirectory: ~
104
+ # It is possible for a malicious user to know the location of RuboCop's cache
105
+ # directory by looking at CacheRootDirectory, and create a symlink in its
106
+ # place that could cause RuboCop to overwrite unintended files, or read
107
+ # malicious input. If you are certain that your cache location is secure from
108
+ # this kind of attack, and wish to use a symlinked cache location, set this
109
+ # value to "true".
78
110
  AllowSymlinksInCacheRootDirectory: false
79
111
  # What MRI version of the Ruby interpreter is the inspected code intended to
80
112
  # run on? (If there is more than one, set this to the lowest version.)
@@ -82,25 +114,22 @@ AllCops:
82
114
  # Else if .ruby-version exists and it contains an MRI version it is used.
83
115
  # Otherwise we fallback to the oldest officially supported Ruby version (2.1).
84
116
  TargetRubyVersion: ~
117
+ TargetRailsVersion: 5.0
118
+
119
+ #################### Layout ###########################
85
120
 
86
121
  # Indent private/protected/public as deep as method definitions
87
- Style/AccessModifierIndentation:
122
+ Layout/AccessModifierIndentation:
88
123
  EnforcedStyle: indent
89
124
  SupportedStyles:
90
125
  - outdent
91
126
  - indent
92
- # By default, the indentation width from Style/IndentationWidth is used
127
+ # By default, the indentation width from Layout/IndentationWidth is used
93
128
  # But it can be overridden by setting this parameter
94
129
  IndentationWidth: ~
95
130
 
96
- Style/Alias:
97
- EnforcedStyle: prefer_alias
98
- SupportedStyles:
99
- - prefer_alias
100
- - prefer_alias_method
101
-
102
131
  # Align the elements of a hash literal if they span more than one line.
103
- Style/AlignHash:
132
+ Layout/AlignHash:
104
133
  # Alignment of entries using hash rocket as separator. Valid values are:
105
134
  #
106
135
  # key - left alignment of keys
@@ -171,7 +200,7 @@ Style/AlignHash:
171
200
  - ignore_implicit
172
201
  - ignore_explicit
173
202
 
174
- Style/AlignParameters:
203
+ Layout/AlignParameters:
175
204
  # Alignment of parameters in multi-line method calls.
176
205
  #
177
206
  # The `with_first_parameter` style aligns the following lines along the same
@@ -189,10 +218,329 @@ Style/AlignParameters:
189
218
  SupportedStyles:
190
219
  - with_first_parameter
191
220
  - with_fixed_indentation
192
- # By default, the indentation width from Style/IndentationWidth is used
221
+ # By default, the indentation width from Layout/IndentationWidth is used
222
+ # But it can be overridden by setting this parameter
223
+ IndentationWidth: ~
224
+
225
+ # Indentation of `when`.
226
+ Layout/CaseIndentation:
227
+ EnforcedStyle: case
228
+ SupportedStyles:
229
+ - case
230
+ - end
231
+ IndentOneStep: false
232
+ # By default, the indentation width from `Layout/IndentationWidth` is used.
233
+ # But it can be overridden by setting this parameter.
234
+ # This only matters if `IndentOneStep` is `true`
235
+ IndentationWidth: ~
236
+
237
+ # Multi-line method chaining should be done with leading dots.
238
+ Layout/DotPosition:
239
+ EnforcedStyle: leading
240
+ SupportedStyles:
241
+ - leading
242
+ - trailing
243
+
244
+ # Use empty lines between defs.
245
+ Layout/EmptyLineBetweenDefs:
246
+ # If `true`, this parameter means that single line method definitions don't
247
+ # need an empty line between them.
248
+ AllowAdjacentOneLineDefs: false
249
+ # Can be array to specify minimum and maximum number of empty lines, e.g. [1, 2]
250
+ NumberOfEmptyLines: 1
251
+
252
+ Layout/EmptyLinesAroundBlockBody:
253
+ EnforcedStyle: no_empty_lines
254
+ SupportedStyles:
255
+ - empty_lines
256
+ - no_empty_lines
257
+
258
+ Layout/EmptyLinesAroundClassBody:
259
+ EnforcedStyle: no_empty_lines
260
+ SupportedStyles:
261
+ - empty_lines
262
+ - empty_lines_except_namespace
263
+ - empty_lines_special
264
+ - no_empty_lines
265
+
266
+ Layout/EmptyLinesAroundModuleBody:
267
+ EnforcedStyle: no_empty_lines
268
+ SupportedStyles:
269
+ - empty_lines
270
+ - empty_lines_except_namespace
271
+ - empty_lines_special
272
+ - no_empty_lines
273
+
274
+ Layout/EndOfLine:
275
+ # The `native` style means that CR+LF (Carriage Return + Line Feed) is
276
+ # enforced on Windows, and LF is enforced on other platforms. The other styles
277
+ # mean LF and CR+LF, respectively.
278
+ EnforcedStyle: native
279
+ SupportedStyles:
280
+ - native
281
+ - lf
282
+ - crlf
283
+
284
+ Layout/ExtraSpacing:
285
+ # When true, allows most uses of extra spacing if the intent is to align
286
+ # things with the previous or next line, not counting empty lines or comment
287
+ # lines.
288
+ AllowForAlignment: true
289
+ # When true, forces the alignment of `=` in assignments on consecutive lines.
290
+ ForceEqualSignAlignment: false
291
+
292
+ Layout/FirstParameterIndentation:
293
+ EnforcedStyle: special_for_inner_method_call_in_parentheses
294
+ SupportedStyles:
295
+ # The first parameter should always be indented one step more than the
296
+ # preceding line.
297
+ - consistent
298
+ # The first parameter should normally be indented one step more than the
299
+ # preceding line, but if it's a parameter for a method call that is itself
300
+ # a parameter in a method call, then the inner parameter should be indented
301
+ # relative to the inner method.
302
+ - special_for_inner_method_call
303
+ # Same as `special_for_inner_method_call` except that the special rule only
304
+ # applies if the outer method call encloses its arguments in parentheses.
305
+ - special_for_inner_method_call_in_parentheses
306
+ # By default, the indentation width from `Layout/IndentationWidth` is used
307
+ # But it can be overridden by setting this parameter
308
+ IndentationWidth: ~
309
+
310
+ Layout/IndentationConsistency:
311
+ # The difference between `rails` and `normal` is that the `rails` style
312
+ # prescribes that in classes and modules the `protected` and `private`
313
+ # modifier keywords shall be indented the same as public methods and that
314
+ # protected and private members shall be indented one step more than the
315
+ # modifiers. Other than that, both styles mean that entities on the same
316
+ # logical depth shall have the same indentation.
317
+ EnforcedStyle: normal
318
+ SupportedStyles:
319
+ - normal
320
+ - rails
321
+
322
+ Layout/IndentationWidth:
323
+ # Number of spaces for each indentation level.
324
+ Width: 2
325
+ IgnoredPatterns: []
326
+
327
+ # Checks the indentation of the first element in an array literal.
328
+ Layout/IndentArray:
329
+ # The value `special_inside_parentheses` means that array literals with
330
+ # brackets that have their opening bracket on the same line as a surrounding
331
+ # opening round parenthesis, shall have their first element indented relative
332
+ # to the first position inside the parenthesis.
333
+ #
334
+ # The value `consistent` means that the indentation of the first element shall
335
+ # always be relative to the first position of the line where the opening
336
+ # bracket is.
337
+ #
338
+ # The value `align_brackets` means that the indentation of the first element
339
+ # shall always be relative to the position of the opening bracket.
340
+ EnforcedStyle: special_inside_parentheses
341
+ SupportedStyles:
342
+ - special_inside_parentheses
343
+ - consistent
344
+ - align_brackets
345
+ # By default, the indentation width from `Layout/IndentationWidth` is used
346
+ # But it can be overridden by setting this parameter
347
+ IndentationWidth: ~
348
+
349
+ # Checks the indentation of assignment RHS, when on a different line from LHS
350
+ Layout/IndentAssignment:
351
+ # By default, the indentation width from `Layout/IndentationWidth` is used
352
+ # But it can be overridden by setting this parameter
353
+ IndentationWidth: ~
354
+
355
+ # Checks the indentation of the first key in a hash literal.
356
+ Layout/IndentHash:
357
+ # The value `special_inside_parentheses` means that hash literals with braces
358
+ # that have their opening brace on the same line as a surrounding opening
359
+ # round parenthesis, shall have their first key indented relative to the
360
+ # first position inside the parenthesis.
361
+ #
362
+ # The value `consistent` means that the indentation of the first key shall
363
+ # always be relative to the first position of the line where the opening
364
+ # brace is.
365
+ #
366
+ # The value `align_braces` means that the indentation of the first key shall
367
+ # always be relative to the position of the opening brace.
368
+ EnforcedStyle: special_inside_parentheses
369
+ SupportedStyles:
370
+ - special_inside_parentheses
371
+ - consistent
372
+ - align_braces
373
+ # By default, the indentation width from `Layout/IndentationWidth` is used
374
+ # But it can be overridden by setting this parameter
375
+ IndentationWidth: ~
376
+
377
+ Layout/IndentHeredoc:
378
+ EnforcedStyle: auto_detection
379
+ SupportedStyles:
380
+ - auto_detection
381
+ - squiggly
382
+ - active_support
383
+ - powerpack
384
+ - unindent
385
+
386
+ Layout/SpaceInLambdaLiteral:
387
+ EnforcedStyle: require_no_space
388
+ SupportedStyles:
389
+ - require_no_space
390
+ - require_space
391
+
392
+ Layout/MultilineArrayBraceLayout:
393
+ EnforcedStyle: symmetrical
394
+ SupportedStyles:
395
+ # symmetrical: closing brace is positioned in same way as opening brace
396
+ # new_line: closing brace is always on a new line
397
+ # same_line: closing brace is always on the same line as last element
398
+ - symmetrical
399
+ - new_line
400
+ - same_line
401
+
402
+ Layout/MultilineAssignmentLayout:
403
+ # The types of assignments which are subject to this rule.
404
+ SupportedTypes:
405
+ - block
406
+ - case
407
+ - class
408
+ - if
409
+ - kwbegin
410
+ - module
411
+ EnforcedStyle: new_line
412
+ SupportedStyles:
413
+ # Ensures that the assignment operator and the rhs are on the same line for
414
+ # the set of supported types.
415
+ - same_line
416
+ # Ensures that the assignment operator and the rhs are on separate lines
417
+ # for the set of supported types.
418
+ - new_line
419
+
420
+ Layout/MultilineHashBraceLayout:
421
+ EnforcedStyle: symmetrical
422
+ SupportedStyles:
423
+ # symmetrical: closing brace is positioned in same way as opening brace
424
+ # new_line: closing brace is always on a new line
425
+ # same_line: closing brace is always on same line as last element
426
+ - symmetrical
427
+ - new_line
428
+ - same_line
429
+
430
+ Layout/MultilineMethodCallBraceLayout:
431
+ EnforcedStyle: symmetrical
432
+ SupportedStyles:
433
+ # symmetrical: closing brace is positioned in same way as opening brace
434
+ # new_line: closing brace is always on a new line
435
+ # same_line: closing brace is always on the same line as last argument
436
+ - symmetrical
437
+ - new_line
438
+ - same_line
439
+
440
+ Layout/MultilineMethodCallIndentation:
441
+ EnforcedStyle: aligned
442
+ SupportedStyles:
443
+ - aligned
444
+ - indented
445
+ - indented_relative_to_receiver
446
+ # By default, the indentation width from Layout/IndentationWidth is used
447
+ # But it can be overridden by setting this parameter
448
+ IndentationWidth: ~
449
+
450
+ Layout/MultilineMethodDefinitionBraceLayout:
451
+ EnforcedStyle: symmetrical
452
+ SupportedStyles:
453
+ # symmetrical: closing brace is positioned in same way as opening brace
454
+ # new_line: closing brace is always on a new line
455
+ # same_line: closing brace is always on the same line as last parameter
456
+ - symmetrical
457
+ - new_line
458
+ - same_line
459
+
460
+ Layout/MultilineOperationIndentation:
461
+ EnforcedStyle: aligned
462
+ SupportedStyles:
463
+ - aligned
464
+ - indented
465
+ # By default, the indentation width from `Layout/IndentationWidth` is used
193
466
  # But it can be overridden by setting this parameter
194
467
  IndentationWidth: ~
195
468
 
469
+ Layout/SpaceAroundBlockParameters:
470
+ EnforcedStyleInsidePipes: no_space
471
+ SupportedStylesInsidePipes:
472
+ - space
473
+ - no_space
474
+
475
+ Layout/SpaceAroundEqualsInParameterDefault:
476
+ EnforcedStyle: space
477
+ SupportedStyles:
478
+ - space
479
+ - no_space
480
+
481
+ Layout/SpaceAroundOperators:
482
+ # When `true`, allows most uses of extra spacing if the intent is to align
483
+ # with an operator on the previous or next line, not counting empty lines
484
+ # or comment lines.
485
+ AllowForAlignment: true
486
+
487
+ Layout/SpaceBeforeBlockBraces:
488
+ EnforcedStyle: space
489
+ SupportedStyles:
490
+ - space
491
+ - no_space
492
+
493
+ Layout/SpaceBeforeFirstArg:
494
+ # When `true`, allows most uses of extra spacing if the intent is to align
495
+ # things with the previous or next line, not counting empty lines or comment
496
+ # lines.
497
+ AllowForAlignment: true
498
+
499
+ Layout/SpaceInsideBlockBraces:
500
+ EnforcedStyle: space
501
+ SupportedStyles:
502
+ - space
503
+ - no_space
504
+ EnforcedStyleForEmptyBraces: no_space
505
+ SupportedStylesForEmptyBraces:
506
+ - space
507
+ - no_space
508
+ # Space between `{` and `|`. Overrides `EnforcedStyle` if there is a conflict.
509
+ SpaceBeforeBlockParameters: true
510
+
511
+ Layout/SpaceInsideHashLiteralBraces:
512
+ EnforcedStyle: space
513
+ SupportedStyles:
514
+ - space
515
+ - no_space
516
+ # 'compact' normally requires a space inside hash braces, with the exception
517
+ # that successive left braces or right braces are collapsed together
518
+ - compact
519
+ EnforcedStyleForEmptyBraces: no_space
520
+ SupportedStylesForEmptyBraces:
521
+ - space
522
+ - no_space
523
+
524
+ Layout/SpaceInsideStringInterpolation:
525
+ EnforcedStyle: no_space
526
+ SupportedStyles:
527
+ - space
528
+ - no_space
529
+
530
+ Layout/TrailingBlankLines:
531
+ EnforcedStyle: final_newline
532
+ SupportedStyles:
533
+ - final_newline
534
+ - final_blank_line
535
+
536
+ #################### Style ###########################
537
+
538
+ Style/Alias:
539
+ EnforcedStyle: prefer_alias
540
+ SupportedStyles:
541
+ - prefer_alias
542
+ - prefer_alias_method
543
+
196
544
  Style/AndOr:
197
545
  # Whether `and` and `or` are banned only in conditionals (conditionals)
198
546
  # or completely (always).
@@ -201,7 +549,6 @@ Style/AndOr:
201
549
  - always
202
550
  - conditionals
203
551
 
204
-
205
552
  # Checks if usage of `%()` or `%Q()` matches configuration.
206
553
  Style/BarePercentLiterals:
207
554
  EnforcedStyle: bare_percent
@@ -294,18 +641,6 @@ Style/BracesAroundHashParameters:
294
641
  # also a hash literal.
295
642
  - context_dependent
296
643
 
297
- # Indentation of `when`.
298
- Style/CaseIndentation:
299
- EnforcedStyle: case
300
- SupportedStyles:
301
- - case
302
- - end
303
- IndentOneStep: false
304
- # By default, the indentation width from `Style/IndentationWidth` is used.
305
- # But it can be overridden by setting this parameter.
306
- # This only matters if `IndentOneStep` is `true`
307
- IndentationWidth: ~
308
-
309
644
  Style/ClassAndModuleChildren:
310
645
  # Checks the style of children definitions at classes and modules.
311
646
  #
@@ -410,17 +745,10 @@ Style/Copyright:
410
745
  Style/DocumentationMethod:
411
746
  RequireForNonPublicMethods: false
412
747
 
413
- # Multi-line method chaining should be done with leading dots.
414
- Style/DotPosition:
415
- EnforcedStyle: leading
416
- SupportedStyles:
417
- - leading
418
- - trailing
419
-
420
748
  # Warn on empty else statements
421
749
  # empty - warn only on empty `else`
422
750
  # nil - warn on `else` with nil in it
423
- # both - warn on empty `else` and `else` with nil in it
751
+ # both - warn on empty `else` and `else` with `nil` in it
424
752
  Style/EmptyElse:
425
753
  EnforcedStyle: both
426
754
  SupportedStyles:
@@ -428,34 +756,6 @@ Style/EmptyElse:
428
756
  - nil
429
757
  - both
430
758
 
431
- # Use empty lines between defs.
432
- Style/EmptyLineBetweenDefs:
433
- # If `true`, this parameter means that single line method definitions don't
434
- # need an empty line between them.
435
- AllowAdjacentOneLineDefs: false
436
-
437
- Style/EmptyLinesAroundBlockBody:
438
- EnforcedStyle: no_empty_lines
439
- SupportedStyles:
440
- - empty_lines
441
- - no_empty_lines
442
-
443
- Style/EmptyLinesAroundClassBody:
444
- EnforcedStyle: no_empty_lines
445
- SupportedStyles:
446
- - empty_lines
447
- - empty_lines_except_namespace
448
- - empty_lines_special
449
- - no_empty_lines
450
-
451
- Style/EmptyLinesAroundModuleBody:
452
- EnforcedStyle: no_empty_lines
453
- SupportedStyles:
454
- - empty_lines
455
- - empty_lines_except_namespace
456
- - empty_lines_special
457
- - no_empty_lines
458
-
459
759
  Style/EmptyMethod:
460
760
  EnforcedStyle: compact
461
761
  SupportedStyles:
@@ -473,14 +773,6 @@ Style/Encoding:
473
773
  - never
474
774
  AutoCorrectEncodingComment: '# encoding: utf-8'
475
775
 
476
- Style/ExtraSpacing:
477
- # When true, allows most uses of extra spacing if the intent is to align
478
- # things with the previous or next line, not counting empty lines or comment
479
- # lines.
480
- AllowForAlignment: true
481
- # When true, forces the alignment of `=` in assignments on consecutive lines.
482
- ForceEqualSignAlignment: false
483
-
484
776
  Style/FileName:
485
777
  # File names listed in `AllCops:Include` are excluded by default. Add extra
486
778
  # excludes here.
@@ -541,24 +833,6 @@ Style/FileName:
541
833
  - XSRF
542
834
  - XSS
543
835
 
544
- Style/FirstParameterIndentation:
545
- EnforcedStyle: special_for_inner_method_call_in_parentheses
546
- SupportedStyles:
547
- # The first parameter should always be indented one step more than the
548
- # preceding line.
549
- - consistent
550
- # The first parameter should normally be indented one step more than the
551
- # preceding line, but if it's a parameter for a method call that is itself
552
- # a parameter in a method call, then the inner parameter should be indented
553
- # relative to the inner method.
554
- - special_for_inner_method_call
555
- # Same as `special_for_inner_method_call` except that the special rule only
556
- # applies if the outer method call encloses its arguments in parentheses.
557
- - special_for_inner_method_call_in_parentheses
558
- # By default, the indentation width from `Style/IndentationWidth` is used
559
- # But it can be overridden by setting this parameter
560
- IndentationWidth: ~
561
-
562
836
  # Checks use of for or each in multiline loops.
563
837
  Style/For:
564
838
  EnforcedStyle: each
@@ -574,6 +848,16 @@ Style/FormatString:
574
848
  - sprintf
575
849
  - percent
576
850
 
851
+ # Enforce using either `%<token>s` or `%{token}`
852
+ Style/FormatStringToken:
853
+ EnforcedStyle: annotated
854
+ SupportedStyles:
855
+ # Prefer tokens which contain a sprintf like type annotation like
856
+ # `%<name>s`, `%<age>d`, `%<score>f`
857
+ - annotated
858
+ # Prefer simple looking "template" style tokens like `%{name}`, `%{age}`
859
+ - template
860
+
577
861
  Style/FrozenStringLiteralComment:
578
862
  EnforcedStyle: when_needed
579
863
  SupportedStyles:
@@ -598,90 +882,46 @@ Style/GlobalVars:
598
882
  Style/GuardClause:
599
883
  MinBodyLength: 1
600
884
 
601
- Style/HashSyntax:
602
- EnforcedStyle: ruby19
603
- SupportedStyles:
604
- # checks for 1.9 syntax (e.g. {a: 1}) for all symbol keys
605
- - ruby19
606
- # checks for hash rocket syntax for all hashes
607
- - hash_rockets
608
- # forbids mixed key syntaxes (e.g. {a: 1, :b => 2})
609
- - no_mixed_keys
610
- # enforces both ruby19 and no_mixed_keys styles
611
- - ruby19_no_mixed_keys
612
- # Force hashes that have a symbol value to use hash rockets
613
- UseHashRocketsWithSymbolValues: false
614
- # Do not suggest { a?: 1 } over { :a? => 1 } in ruby19 style
615
- PreferHashRocketsForNonAlnumEndingSymbols: false
616
-
617
- Style/IfUnlessModifier:
618
- MaxLineLength: 80
619
-
620
- Style/IndentationConsistency:
621
- # The difference between `rails` and `normal` is that the `rails` style
622
- # prescribes that in classes and modules the `protected` and `private`
623
- # modifier keywords shall be indented the same as public methods and that
624
- # protected and private members shall be indented one step more than the
625
- # modifiers. Other than that, both styles mean that entities on the same
626
- # logical depth shall have the same indentation.
627
- EnforcedStyle: normal
628
- SupportedStyles:
629
- - normal
630
- - rails
631
-
632
- Style/IndentationWidth:
633
- # Number of spaces for each indentation level.
634
- Width: 2
635
-
636
- # Checks the indentation of the first element in an array literal.
637
- Style/IndentArray:
638
- # The value `special_inside_parentheses` means that array literals with
639
- # brackets that have their opening bracket on the same line as a surrounding
640
- # opening round parenthesis, shall have their first element indented relative
641
- # to the first position inside the parenthesis.
642
- #
643
- # The value `consistent` means that the indentation of the first element shall
644
- # always be relative to the first position of the line where the opening
645
- # bracket is.
646
- #
647
- # The value `align_brackets` means that the indentation of the first element
648
- # shall always be relative to the position of the opening bracket.
649
- EnforcedStyle: special_inside_parentheses
650
- SupportedStyles:
651
- - special_inside_parentheses
652
- - consistent
653
- - align_brackets
654
- # By default, the indentation width from `Style/IndentationWidth` is used
655
- # But it can be overridden by setting this parameter
656
- IndentationWidth: ~
657
-
658
- # Checks the indentation of assignment RHS, when on a different line from LHS
659
- Style/IndentAssignment:
660
- # By default, the indentation width from `Style/IndentationWidth` is used
661
- # But it can be overridden by setting this parameter
662
- IndentationWidth: ~
663
-
664
- # Checks the indentation of the first key in a hash literal.
665
- Style/IndentHash:
666
- # The value `special_inside_parentheses` means that hash literals with braces
667
- # that have their opening brace on the same line as a surrounding opening
668
- # round parenthesis, shall have their first key indented relative to the
669
- # first position inside the parenthesis.
670
- #
671
- # The value `consistent` means that the indentation of the first key shall
672
- # always be relative to the first position of the line where the opening
673
- # brace is.
674
- #
675
- # The value `align_braces` means that the indentation of the first key shall
676
- # always be relative to the position of the opening brace.
677
- EnforcedStyle: special_inside_parentheses
885
+ Style/HashSyntax:
886
+ EnforcedStyle: ruby19
678
887
  SupportedStyles:
679
- - special_inside_parentheses
680
- - consistent
681
- - align_braces
682
- # By default, the indentation width from `Style/IndentationWidth` is used
683
- # But it can be overridden by setting this parameter
684
- IndentationWidth: ~
888
+ # checks for 1.9 syntax (e.g. {a: 1}) for all symbol keys
889
+ - ruby19
890
+ # checks for hash rocket syntax for all hashes
891
+ - hash_rockets
892
+ # forbids mixed key syntaxes (e.g. {a: 1, :b => 2})
893
+ - no_mixed_keys
894
+ # enforces both ruby19 and no_mixed_keys styles
895
+ - ruby19_no_mixed_keys
896
+ # Force hashes that have a symbol value to use hash rockets
897
+ UseHashRocketsWithSymbolValues: false
898
+ # Do not suggest { a?: 1 } over { :a? => 1 } in ruby19 style
899
+ PreferHashRocketsForNonAlnumEndingSymbols: false
900
+
901
+ Style/IfUnlessModifier:
902
+ MaxLineLength: 80
903
+
904
+ Style/InverseMethods:
905
+ Enabled: true
906
+ # `InverseMethods` are methods that can be inverted by a not (`not` or `!`)
907
+ # The relationship of inverse methods only needs to be defined in one direction.
908
+ # Keys and values both need to be defined as symbols.
909
+ InverseMethods:
910
+ :any?: :none?
911
+ :even?: :odd?
912
+ :==: :!=
913
+ :=~: :!~
914
+ :<: :>=
915
+ :>: :<=
916
+ # `ActiveSupport` defines some common inverse methods. They are listed below,
917
+ # and not enabled by default.
918
+ #:present?: :blank?,
919
+ #:include?: :exclude?
920
+ # `InverseBlocks` are methods that are inverted by inverting the return
921
+ # of the block that is passed to the method
922
+ InverseBlocks:
923
+ :select: :reject
924
+ :select!: :reject!
685
925
 
686
926
  Style/Lambda:
687
927
  EnforcedStyle: line_count_dependent
@@ -690,48 +930,15 @@ Style/Lambda:
690
930
  - lambda
691
931
  - literal
692
932
 
693
- Style/SpaceInLambdaLiteral:
694
- EnforcedStyle: require_no_space
695
- SupportedStyles:
696
- - require_no_space
697
- - require_space
698
-
699
933
  Style/LambdaCall:
700
934
  EnforcedStyle: call
701
935
  SupportedStyles:
702
936
  - call
703
937
  - braces
704
938
 
705
- Style/Next:
706
- # With `always` all conditions at the end of an iteration needs to be
707
- # replaced by next - with `skip_modifier_ifs` the modifier if like this one
708
- # are ignored: [1, 2].each { |a| return 'yes' if a == 1 }
709
- EnforcedStyle: skip_modifier_ifs
710
- # `MinBodyLength` defines the number of lines of the a body of an `if` or `unless`
711
- # needs to have to trigger this cop
712
- MinBodyLength: 3
713
- SupportedStyles:
714
- - skip_modifier_ifs
715
- - always
716
-
717
- Style/NonNilCheck:
718
- # With `IncludeSemanticChanges` set to `true`, this cop reports offenses for
719
- # `!x.nil?` and autocorrects that and `x != nil` to solely `x`, which is
720
- # **usually** OK, but might change behavior.
721
- #
722
- # With `IncludeSemanticChanges` set to `false`, this cop does not report
723
- # offenses for `!x.nil?` and does no changes that might change behavior.
724
- IncludeSemanticChanges: false
725
-
726
- Style/NumericPredicate:
727
- EnforcedStyle: predicate
728
- SupportedStyles:
729
- - predicate
730
- - comparison
731
- # Exclude RSpec specs because assertions like `expect(1).to be > 0` cause
732
- # false positives.
733
- Exclude:
734
- - 'spec/**/*'
939
+ Style/MethodCallWithArgsParentheses:
940
+ IgnoreMacros: true
941
+ IgnoredMethods: []
735
942
 
736
943
  Style/MethodDefParentheses:
737
944
  EnforcedStyle: require_parentheses
@@ -740,100 +947,68 @@ Style/MethodDefParentheses:
740
947
  - require_no_parentheses
741
948
  - require_no_parentheses_except_multiline
742
949
 
743
- Style/MethodCallWithArgsParentheses:
744
- IgnoredMethods: []
745
-
746
950
  Style/MethodName:
747
951
  EnforcedStyle: snake_case
748
952
  SupportedStyles:
749
953
  - snake_case
750
954
  - camelCase
751
955
 
956
+ # Checks the grouping of mixins (`include`, `extend`, `prepend`) in `class` and
957
+ # `module` bodies.
958
+ Style/MixinGrouping:
959
+ EnforcedStyle: separated
960
+ SupportedStyles:
961
+ # separated: each mixed in module goes in a separate statement.
962
+ # grouped: mixed in modules are grouped into a single statement.
963
+ - separated
964
+ - grouped
965
+
752
966
  Style/ModuleFunction:
753
967
  EnforcedStyle: module_function
754
968
  SupportedStyles:
755
969
  - module_function
756
970
  - extend_self
757
971
 
758
- Style/MultilineArrayBraceLayout:
759
- EnforcedStyle: symmetrical
760
- SupportedStyles:
761
- # symmetrical: closing brace is positioned in same way as opening brace
762
- # new_line: closing brace is always on a new line
763
- # same_line: closing brace is always on the same line as last element
764
- - symmetrical
765
- - new_line
766
- - same_line
767
-
768
- Style/MultilineAssignmentLayout:
769
- # The types of assignments which are subject to this rule.
770
- SupportedTypes:
771
- - block
772
- - case
773
- - class
774
- - if
775
- - kwbegin
776
- - module
777
- EnforcedStyle: new_line
778
- SupportedStyles:
779
- # Ensures that the assignment operator and the rhs are on the same line for
780
- # the set of supported types.
781
- - same_line
782
- # Ensures that the assignment operator and the rhs are on separate lines
783
- # for the set of supported types.
784
- - new_line
785
-
786
- Style/MultilineHashBraceLayout:
787
- EnforcedStyle: symmetrical
788
- SupportedStyles:
789
- # symmetrical: closing brace is positioned in same way as opening brace
790
- # new_line: closing brace is always on a new line
791
- # same_line: closing brace is always on same line as last element
792
- - symmetrical
793
- - new_line
794
- - same_line
795
-
796
- Style/MultilineMethodCallBraceLayout:
797
- EnforcedStyle: symmetrical
972
+ Style/MultilineMemoization:
973
+ EnforcedStyle: keyword
798
974
  SupportedStyles:
799
- # symmetrical: closing brace is positioned in same way as opening brace
800
- # new_line: closing brace is always on a new line
801
- # same_line: closing brace is always on the same line as last argument
802
- - symmetrical
803
- - new_line
804
- - same_line
975
+ - keyword
976
+ - braces
805
977
 
806
- Style/MultilineMethodCallIndentation:
807
- EnforcedStyle: aligned
978
+ Style/NegatedIf:
979
+ EnforcedStyle: both
808
980
  SupportedStyles:
809
- - aligned
810
- - indented
811
- - indented_relative_to_receiver
812
- # By default, the indentation width from Style/IndentationWidth is used
813
- # But it can be overridden by setting this parameter
814
- IndentationWidth: ~
981
+ # both: prefix and postfix negated `if` should both use `unless`
982
+ # prefix: only use `unless` for negated `if` statements positioned before the body of the statement
983
+ # postfix: only use `unless` for negated `if` statements positioned after the body of the statement
984
+ - both
985
+ - prefix
986
+ - postfix
815
987
 
816
- Style/MultilineMethodDefinitionBraceLayout:
817
- EnforcedStyle: symmetrical
988
+ Style/Next:
989
+ # With `always` all conditions at the end of an iteration needs to be
990
+ # replaced by next - with `skip_modifier_ifs` the modifier if like this one
991
+ # are ignored: [1, 2].each { |a| return 'yes' if a == 1 }
992
+ EnforcedStyle: skip_modifier_ifs
993
+ # `MinBodyLength` defines the number of lines of the a body of an `if` or `unless`
994
+ # needs to have to trigger this cop
995
+ MinBodyLength: 3
818
996
  SupportedStyles:
819
- # symmetrical: closing brace is positioned in same way as opening brace
820
- # new_line: closing brace is always on a new line
821
- # same_line: closing brace is always on the same line as last parameter
822
- - symmetrical
823
- - new_line
824
- - same_line
997
+ - skip_modifier_ifs
998
+ - always
825
999
 
826
- Style/MultilineOperationIndentation:
827
- EnforcedStyle: aligned
828
- SupportedStyles:
829
- - aligned
830
- - indented
831
- # By default, the indentation width from `Style/IndentationWidth` is used
832
- # But it can be overridden by setting this parameter
833
- IndentationWidth: ~
1000
+ Style/NonNilCheck:
1001
+ # With `IncludeSemanticChanges` set to `true`, this cop reports offenses for
1002
+ # `!x.nil?` and autocorrects that and `x != nil` to solely `x`, which is
1003
+ # **usually** OK, but might change behavior.
1004
+ #
1005
+ # With `IncludeSemanticChanges` set to `false`, this cop does not report
1006
+ # offenses for `!x.nil?` and does no changes that might change behavior.
1007
+ IncludeSemanticChanges: false
834
1008
 
835
1009
  Style/NumericLiterals:
836
1010
  MinDigits: 5
1011
+ Strict: false
837
1012
 
838
1013
  Style/NumericLiteralPrefix:
839
1014
  EnforcedOctalStyle: zero_with_o
@@ -841,6 +1016,16 @@ Style/NumericLiteralPrefix:
841
1016
  - zero_with_o
842
1017
  - zero_only
843
1018
 
1019
+ Style/NumericPredicate:
1020
+ EnforcedStyle: predicate
1021
+ SupportedStyles:
1022
+ - predicate
1023
+ - comparison
1024
+ # Exclude RSpec specs because assertions like `expect(1).to be > 0` cause
1025
+ # false positives.
1026
+ Exclude:
1027
+ - 'spec/**/*'
1028
+
844
1029
  Style/OptionHash:
845
1030
  # A list of parameter names that will be flagged by this cop.
846
1031
  SuspiciousParamNames:
@@ -855,17 +1040,16 @@ Style/ParenthesesAroundCondition:
855
1040
  AllowSafeAssignment: true
856
1041
 
857
1042
  Style/PercentLiteralDelimiters:
1043
+ # Specify the default preferred delimiter for all types with the 'default' key
1044
+ # Override individual delimiters (even with default specified) by specifying
1045
+ # an individual key
858
1046
  PreferredDelimiters:
859
- '%': ()
860
- '%i': ()
861
- '%I': ()
862
- '%q': ()
863
- '%Q': ()
1047
+ default: ()
1048
+ '%i': '[]'
1049
+ '%I': '[]'
864
1050
  '%r': '{}'
865
- '%s': ()
866
- '%w': ()
867
- '%W': ()
868
- '%x': ()
1051
+ '%w': '[]'
1052
+ '%W': '[]'
869
1053
 
870
1054
  Style/PercentQLiterals:
871
1055
  EnforcedStyle: lower_case_q
@@ -888,7 +1072,7 @@ Style/PredicateName:
888
1072
  # should still be accepted
889
1073
  NameWhitelist:
890
1074
  - is_a?
891
- # Exclude Rspec specs because there is a strong convetion to write spec
1075
+ # Exclude Rspec specs because there is a strong convention to write spec
892
1076
  # helpers in the form of `have_something` or `be_something`.
893
1077
  Exclude:
894
1078
  - 'spec/**/*'
@@ -951,12 +1135,6 @@ Style/SingleLineBlockParams:
951
1135
  Style/SingleLineMethods:
952
1136
  AllowIfMethodIsEmpty: true
953
1137
 
954
- Style/SpaceBeforeFirstArg:
955
- # When `true`, allows most uses of extra spacing if the intent is to align
956
- # things with the previous or next line, not counting empty lines or comment
957
- # lines.
958
- AllowForAlignment: true
959
-
960
1138
  Style/SpecialGlobalVars:
961
1139
  EnforcedStyle: use_english_names
962
1140
  SupportedStyles:
@@ -994,63 +1172,9 @@ Style/StringMethods:
994
1172
  PreferredMethods:
995
1173
  intern: to_sym
996
1174
 
997
- Style/SpaceAroundBlockParameters:
998
- EnforcedStyleInsidePipes: no_space
999
- SupportedStylesInsidePipes:
1000
- - space
1001
- - no_space
1002
-
1003
- Style/SpaceAroundEqualsInParameterDefault:
1004
- EnforcedStyle: space
1005
- SupportedStyles:
1006
- - space
1007
- - no_space
1008
-
1009
- Style/SpaceAroundOperators:
1010
- # When `true`, allows most uses of extra spacing if the intent is to align
1011
- # with an operator on the previous or next line, not counting empty lines
1012
- # or comment lines.
1013
- AllowForAlignment: true
1014
-
1015
- Style/SpaceBeforeBlockBraces:
1016
- EnforcedStyle: space
1017
- SupportedStyles:
1018
- - space
1019
- - no_space
1020
-
1021
- Style/SpaceInsideBlockBraces:
1022
- EnforcedStyle: space
1023
- SupportedStyles:
1024
- - space
1025
- - no_space
1026
- EnforcedStyleForEmptyBraces: no_space
1027
- SupportedStylesForEmptyBraces:
1028
- - space
1029
- - no_space
1030
- # Space between { and |. Overrides EnforcedStyle if there is a conflict.
1031
- SpaceBeforeBlockParameters: true
1032
-
1033
- Style/SpaceInsideHashLiteralBraces:
1034
- EnforcedStyle: space
1035
- SupportedStyles:
1036
- - space
1037
- - no_space
1038
- # 'compact' normally requires a space inside hash braces, with the exception
1039
- # that successive left braces or right braces are collapsed together
1040
- - compact
1041
- EnforcedStyleForEmptyBraces: no_space
1042
- SupportedStylesForEmptyBraces:
1043
- - space
1044
- - no_space
1045
-
1046
- Style/SpaceInsideStringInterpolation:
1047
- EnforcedStyle: no_space
1048
- SupportedStyles:
1049
- - space
1050
- - no_space
1051
-
1052
1175
  Style/SymbolArray:
1053
1176
  EnforcedStyle: percent
1177
+ MinSize: 0
1054
1178
  SupportedStyles:
1055
1179
  - percent
1056
1180
  - brackets
@@ -1070,12 +1194,6 @@ Style/TernaryParentheses:
1070
1194
  - require_parentheses_when_complex
1071
1195
  AllowSafeAssignment: true
1072
1196
 
1073
- Style/TrailingBlankLines:
1074
- EnforcedStyle: final_newline
1075
- SupportedStyles:
1076
- - final_newline
1077
- - final_blank_line
1078
-
1079
1197
  Style/TrailingCommaInArguments:
1080
1198
  # If `comma`, the cop requires a comma after the last argument, but only for
1081
1199
  # parenthesized method calls where each argument is on its own line.
@@ -1098,7 +1216,7 @@ Style/TrailingCommaInLiteral:
1098
1216
  - consistent_comma
1099
1217
  - no_comma
1100
1218
 
1101
- # TrivialAccessors requires exact name matches and doesn't allow
1219
+ # `TrivialAccessors` requires exact name matches and doesn't allow
1102
1220
  # predicated methods by default.
1103
1221
  Style/TrivialAccessors:
1104
1222
  # When set to `false` the cop will suggest the use of accessor methods
@@ -1171,13 +1289,18 @@ Style/WordArray:
1171
1289
  # The regular expression `WordRegex` decides what is considered a word.
1172
1290
  WordRegex: !ruby/regexp '/\A[\p{Word}\n\t]+\z/'
1173
1291
 
1174
- ##################### Metrics ##################################
1292
+ #################### Metrics ###############################
1175
1293
 
1176
1294
  Metrics/AbcSize:
1177
1295
  # The ABC size is a calculated magnitude, so this number can be an Integer or
1178
1296
  # a Float.
1179
1297
  Max: 15
1180
1298
 
1299
+ Metrics/BlockLength:
1300
+ CountComments: false # count full line comments?
1301
+ Max: 25
1302
+ ExcludedMethods: []
1303
+
1181
1304
  Metrics/BlockNesting:
1182
1305
  CountBlocks: false
1183
1306
  Max: 3
@@ -1186,10 +1309,6 @@ Metrics/ClassLength:
1186
1309
  CountComments: false # count full line comments?
1187
1310
  Max: 100
1188
1311
 
1189
- Metrics/ModuleLength:
1190
- CountComments: false # count full line comments?
1191
- Max: 100
1192
-
1193
1312
  # Avoid complex methods.
1194
1313
  Metrics/CyclomaticComplexity:
1195
1314
  Max: 6
@@ -1215,10 +1334,9 @@ Metrics/MethodLength:
1215
1334
  CountComments: false # count full line comments?
1216
1335
  Max: 10
1217
1336
 
1218
- Metrics/BlockLength:
1337
+ Metrics/ModuleLength:
1219
1338
  CountComments: false # count full line comments?
1220
- Max: 25
1221
- ExcludedMethods: []
1339
+ Max: 100
1222
1340
 
1223
1341
  Metrics/ParameterLists:
1224
1342
  Max: 5
@@ -1227,7 +1345,7 @@ Metrics/ParameterLists:
1227
1345
  Metrics/PerceivedComplexity:
1228
1346
  Max: 7
1229
1347
 
1230
- ##################### Lint ##################################
1348
+ #################### Lint ##################################
1231
1349
 
1232
1350
  # Allow safe assignment in conditions.
1233
1351
  Lint/AssignmentInCondition:
@@ -1246,6 +1364,17 @@ Lint/BlockAlignment:
1246
1364
  - start_of_block
1247
1365
  - start_of_line
1248
1366
 
1367
+ Lint/DefEndAlignment:
1368
+ # The value `def` means that `end` should be aligned with the def keyword.
1369
+ # The value `start_of_line` means that `end` should be aligned with method
1370
+ # calls like `private`, `public`, etc, if present in front of the `def`
1371
+ # keyword on the same line.
1372
+ EnforcedStyleAlignWith: start_of_line
1373
+ SupportedStylesAlignWith:
1374
+ - start_of_line
1375
+ - def
1376
+ AutoCorrect: false
1377
+
1249
1378
  # Align ends correctly.
1250
1379
  Lint/EndAlignment:
1251
1380
  # The value `keyword` means that `end` should be aligned with the matching
@@ -1262,17 +1391,6 @@ Lint/EndAlignment:
1262
1391
  - start_of_line
1263
1392
  AutoCorrect: false
1264
1393
 
1265
- Lint/DefEndAlignment:
1266
- # The value `def` means that `end` should be aligned with the def keyword.
1267
- # The value `start_of_line` means that `end` should be aligned with method
1268
- # calls like `private`, `public`, etc, if present in front of the `def`
1269
- # keyword on the same line.
1270
- EnforcedStyleAlignWith: start_of_line
1271
- SupportedStylesAlignWith:
1272
- - start_of_line
1273
- - def
1274
- AutoCorrect: false
1275
-
1276
1394
  Lint/InheritException:
1277
1395
  # The default base class in favour of `Exception`.
1278
1396
  EnforcedStyle: runtime_error
@@ -1280,6 +1398,13 @@ Lint/InheritException:
1280
1398
  - runtime_error
1281
1399
  - standard_error
1282
1400
 
1401
+ Lint/SafeNavigationChain:
1402
+ Whitelist:
1403
+ - present?
1404
+ - blank?
1405
+ - presence
1406
+ - try
1407
+
1283
1408
  # Checks for unused block arguments
1284
1409
  Lint/UnusedBlockArgument:
1285
1410
  IgnoreEmptyBlocks: true
@@ -1290,13 +1415,18 @@ Lint/UnusedMethodArgument:
1290
1415
  AllowUnusedKeywordArguments: false
1291
1416
  IgnoreEmptyMethods: true
1292
1417
 
1293
- ##################### Performance ############################
1418
+ #################### Performance ###########################
1419
+
1420
+ Performance/DoubleStartEndWith:
1421
+ # Used to check for `starts_with?` and `ends_with?`.
1422
+ # These methods are defined by `ActiveSupport`.
1423
+ IncludeActiveSupportAliases: false
1294
1424
 
1295
1425
  Performance/RedundantMerge:
1296
1426
  # Max number of key-value pairs to consider an offense
1297
1427
  MaxKeyValuePairs: 2
1298
1428
 
1299
- ##################### Rails ##################################
1429
+ #################### Rails #################################
1300
1430
 
1301
1431
  Rails/ActionFilter:
1302
1432
  EnforcedStyle: action
@@ -1413,3 +1543,6 @@ Rails/SkipsModelValidations:
1413
1543
  Rails/Validation:
1414
1544
  Include:
1415
1545
  - app/models/**/*.rb
1546
+
1547
+ Bundler/OrderedGems:
1548
+ TreatCommentsAsGroupSeparators: true