art-rubocop 1.0.1 → 1.0.2

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.
data/default.yml ADDED
@@ -0,0 +1,1339 @@
1
+ require:
2
+ - rubocop-performance
3
+ - rubocop-rails
4
+ - rubocop-rspec
5
+
6
+ AllCops:
7
+ DisplayCopNames: true
8
+ NewCops: enable
9
+ RubyInterpreters:
10
+ - ruby
11
+ Include:
12
+ - '**/*.rb'
13
+ - '**/*.rake'
14
+ - '**/*.ru'
15
+ - '**/Gemfile'
16
+ - '**/Rakefile'
17
+ Exclude:
18
+ - 'app/javascript/**'
19
+ - 'db/schema.rb'
20
+ - 'node_modules/**/*'
21
+ - 'tmp/**/*'
22
+ - 'vendor/**/*'
23
+ - '.git/**/*'
24
+ - node_modules/**/*
25
+ - tmp/**/*
26
+ - vendor/**/*
27
+ - .git/**/*
28
+ TargetRubyVersion: 2.6
29
+
30
+ #################### Layout ###########################
31
+
32
+ Layout/ArgumentAlignment:
33
+ Description: 'Here we check if the parameters on a multi-line method call or definition are aligned.'
34
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-double-indent'
35
+ Enabled: false
36
+
37
+ Layout/HashAlignment:
38
+ Description: 'Here we check if the keys of a hash are properly aligned'
39
+ Enabled: true
40
+ EnforcedLastArgumentHashStyle: ignore_implicit
41
+
42
+ Layout/ConditionPosition:
43
+ Description: >-
44
+ Checks for condition placed in a confusing position relative to
45
+ the keyword.
46
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#same-line-condition'
47
+ Enabled: false
48
+
49
+ Layout/DotPosition:
50
+ Description: 'Checks the position of the dot in multi-line method calls.'
51
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#consistent-multi-line-chains'
52
+ EnforcedStyle: trailing
53
+
54
+ Layout/EmptyLinesAroundAttributeAccessor:
55
+ Description: "Keep blank lines around attribute accessors."
56
+ StyleGuide: '#empty-lines-around-attribute-accessor'
57
+ Enabled: true
58
+ AllowAliasSyntax: false
59
+
60
+ Layout/ExtraSpacing:
61
+ Description: 'Do not use unnecessary spacing.'
62
+ Enabled: true
63
+
64
+ Layout/LineLength:
65
+ Description: 'Limit lines to 100 characters.'
66
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#80-character-limits'
67
+ Max: 100
68
+ Exclude:
69
+ - config/environments/**/*
70
+ - config/initializers/**/*
71
+ - db/migrate/*.rb
72
+ - db/seeds/*.rb
73
+ - lib/tasks/**/*.rake
74
+ - spec/**/*.rb
75
+
76
+ Layout/MultilineOperationIndentation:
77
+ Description: >-
78
+ Checks indentation of binary operations that span more than
79
+ one line.
80
+ Enabled: true
81
+ EnforcedStyle: indented
82
+
83
+ Layout/MultilineMethodCallIndentation:
84
+ Description: >-
85
+ Checks indentation of method calls with the dot operator
86
+ that span more than one line.
87
+ Enabled: true
88
+ EnforcedStyle: indented
89
+
90
+ Layout/IndentationConsistency:
91
+ Description: >-
92
+ Checks for inconsistent indentation.
93
+ Enabled: true
94
+ EnforcedStyle: normal
95
+
96
+ Layout/IndentationWidth:
97
+ Description: >-
98
+ Checks for indentation that doesn't use the specified number of spaces.
99
+ Enabled: true
100
+ Width: 2
101
+
102
+ Layout/InitialIndentation:
103
+ Description: >-
104
+ Checks the indentation of the first non-blank non-comment line in a file.
105
+ Enabled: false
106
+
107
+ Layout/SpaceAroundMethodCallOperator:
108
+ Description: 'Checks method call operators to not have spaces around them.'
109
+ Enabled: true
110
+
111
+ ##################### Lint ###########################
112
+
113
+ Lint/AmbiguousOperator:
114
+ Description: >-
115
+ Checks for ambiguous operators in the first argument of a
116
+ method invocation without parentheses.
117
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parens-as-args'
118
+ Enabled: false
119
+
120
+ Lint/AmbiguousRegexpLiteral:
121
+ Description: >-
122
+ Checks for ambiguous regexp literals in the first argument of
123
+ a method invocation without parenthesis.
124
+ Enabled: false
125
+
126
+ Lint/AssignmentInCondition:
127
+ Description: "Don't use assignment in conditions."
128
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#safe-assignment-in-condition'
129
+ Enabled: false
130
+
131
+ Lint/CircularArgumentReference:
132
+ Description: "Don't refer to the keyword argument in the default value."
133
+ Enabled: false
134
+
135
+ Lint/DeprecatedClassMethods:
136
+ Description: 'Check for deprecated class method calls.'
137
+ Enabled: false
138
+
139
+ Lint/DeprecatedOpenSSLConstant:
140
+ Description: "Don't use algorithm constants for `OpenSSL::Cipher` and `OpenSSL::Digest`."
141
+ Enabled: true
142
+
143
+ Lint/MixedRegexpCaptureTypes:
144
+ Description: 'Do not mix named captures and numbered captures in a Regexp literal.'
145
+ Enabled: true
146
+
147
+ Lint/DuplicateHashKey:
148
+ Description: 'Check for duplicate keys in hash literals.'
149
+ Enabled: false
150
+
151
+ Lint/EachWithObjectArgument:
152
+ Description: 'Check for immutable argument given to each_with_object.'
153
+ Enabled: false
154
+
155
+ Lint/ElseLayout:
156
+ Description: 'Check for odd code arrangement in an else block.'
157
+ Enabled: false
158
+
159
+ Lint/EmptyWhen:
160
+ Description: 'Avoid when branches without a body.'
161
+ Enabled: false
162
+
163
+ Lint/FormatParameterMismatch:
164
+ Description: 'The number of parameters to format/sprint must match the fields.'
165
+ Enabled: false
166
+
167
+ Lint/FlipFlop:
168
+ Description: 'Checks for flip flops'
169
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-flip-flops'
170
+ Enabled: false
171
+
172
+ Lint/SuppressedException:
173
+ Description: "Don't suppress exception."
174
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#dont-hide-exceptions'
175
+ Enabled: false
176
+
177
+ Lint/LiteralAsCondition:
178
+ Description: 'Checks of literals used in conditions.'
179
+ Enabled: false
180
+
181
+ Lint/LiteralInInterpolation:
182
+ Description: 'Checks for literals used in interpolation.'
183
+ Enabled: false
184
+
185
+ Lint/Loop:
186
+ Description: >-
187
+ Use Kernel#loop with break rather than begin/end/until or
188
+ begin/end/while for post-loop tests.
189
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#loop-with-break'
190
+ Enabled: false
191
+
192
+ Lint/NestedMethodDefinition:
193
+ Description: 'Do not use nested method definitions.'
194
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-methods'
195
+ Enabled: false
196
+
197
+ Lint/NonLocalExitFromIterator:
198
+ Description: 'Do not use return in iterator to cause non-local exit.'
199
+ Enabled: false
200
+
201
+ Lint/ParenthesesAsGroupedExpression:
202
+ Description: >-
203
+ Checks for method calls with a space before the opening
204
+ parenthesis.
205
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parens-no-spaces'
206
+ Enabled: false
207
+
208
+ Lint/RaiseException:
209
+ Description: Checks for `raise` or `fail` statements which are raising `Exception` class.
210
+ StyleGuide: '#raise-exception'
211
+ Enabled: true
212
+ Safe: false
213
+ AllowedImplicitNamespaces:
214
+ - 'Gem'
215
+
216
+ Lint/RedundantCopDisableDirective:
217
+ Description: >-
218
+ Checks for rubocop:disable comments that can be removed.
219
+ Note: this cop is not disabled when disabling all cops.
220
+ It must be explicitly disabled.
221
+ Enabled: true
222
+
223
+ Lint/RequireParentheses:
224
+ Description: >-
225
+ Use parentheses in the method call to avoid confusion
226
+ about precedence.
227
+ Enabled: false
228
+
229
+ Lint/StructNewOverride:
230
+ Description: 'Disallow overriding the `Struct` built-in methods via `Struct.new`.'
231
+ Enabled: true
232
+ VersionAdded: '0.81'
233
+
234
+ Lint/UnderscorePrefixedVariableName:
235
+ Description: 'Do not use prefix `_` for a variable that is used.'
236
+ Enabled: false
237
+
238
+ Lint/Void:
239
+ Description: 'Possible use of operator/literal/variable in void context.'
240
+ Enabled: false
241
+
242
+ ##################### Metrics ###########################
243
+
244
+ Metrics/AbcSize:
245
+ Description: >-
246
+ A calculated magnitude based on number of assignments,
247
+ branches, and conditions.
248
+ Enabled: false
249
+
250
+ Metrics/BlockLength:
251
+ CountComments: true # count full line comments?
252
+ Max: 25
253
+ IgnoredMethods: []
254
+ Exclude:
255
+ - "app/admin/**/*"
256
+ - "config/routes.rb"
257
+ - "config/environments/**/*"
258
+ - "config/initializers/**/*"
259
+ - "db/migrate/**/*.rb"
260
+ - "db/seeds/**/*.rb"
261
+ - "lib/tasks/**/*.rake"
262
+ - "spec/**/*"
263
+
264
+ Metrics/BlockNesting:
265
+ Description: 'Avoid excessive block nesting'
266
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#three-is-the-number-thou-shalt-count'
267
+ Enabled: false
268
+
269
+ Metrics/ClassLength:
270
+ Description: 'Avoid classes longer than 100 lines of code.'
271
+ Enabled: false
272
+
273
+ Metrics/CyclomaticComplexity:
274
+ Description: >-
275
+ A complexity metric that is strongly correlated to the number
276
+ of test cases needed to validate a method.
277
+ Enabled: false
278
+
279
+ Metrics/MethodLength:
280
+ Description: 'Avoid methods longer than 10 lines of code.'
281
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#short-methods'
282
+ Enabled: true
283
+
284
+ Metrics/ModuleLength:
285
+ Description: 'Avoid modules longer than 100 lines of code.'
286
+ Enabled: false
287
+
288
+ Metrics/ParameterLists:
289
+ Description: 'Avoid parameter lists longer than three or four parameters.'
290
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#too-many-params'
291
+ Enabled: false
292
+
293
+ ##################### Naming ###########################
294
+
295
+ Naming/AsciiIdentifiers:
296
+ Description: 'Use only ascii symbols in identifiers.'
297
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#english-identifiers'
298
+ Enabled: false
299
+
300
+ Naming/AccessorMethodName:
301
+ Description: Check the naming of accessor methods for get_/set_.
302
+ Enabled: false
303
+
304
+ Naming/BinaryOperatorParameterName:
305
+ Description: 'When defining binary operators, name the argument other.'
306
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#other-arg'
307
+ Enabled: false
308
+
309
+ Naming/FileName:
310
+ Description: 'Use snake_case for source file names.'
311
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#snake-case-files'
312
+ Enabled: false
313
+
314
+ Naming/MemoizedInstanceVariableName:
315
+ Enabled: false
316
+
317
+ Naming/PredicateName:
318
+ Description: 'Check the names of predicate methods.'
319
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#bool-methods-qmark'
320
+ ForbiddenPrefixes:
321
+ - is_
322
+ Exclude:
323
+ - spec/**/*
324
+
325
+ Naming/RescuedExceptionsVariableName:
326
+ Description: Check that rescued exceptions variables are named as expecte
327
+ Enabled: true
328
+ PreferredName: exception
329
+
330
+ Naming/VariableName:
331
+ Enabled: true
332
+ Exclude:
333
+ - app/views/**/*
334
+
335
+ ##################### Style ###########################
336
+
337
+ Style/Alias:
338
+ Description: 'Use alias_method instead of alias.'
339
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#alias-method'
340
+ Enabled: false
341
+
342
+ Style/AndOr:
343
+ Enabled: true
344
+ Exclude:
345
+ - app/controllers/**/*.rb
346
+
347
+ Style/ArrayJoin:
348
+ Description: 'Use Array#join instead of Array#*.'
349
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#array-join'
350
+ Enabled: false
351
+
352
+ Style/AsciiComments:
353
+ Description: 'Use only ascii symbols in comments.'
354
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#english-comments'
355
+ Enabled: false
356
+
357
+ Style/Attr:
358
+ Description: 'Checks for uses of Module#attr.'
359
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#attr'
360
+ Enabled: false
361
+
362
+ Style/CaseEquality:
363
+ Description: 'Avoid explicit use of the case equality operator(===).'
364
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-case-equality'
365
+ Enabled: true
366
+
367
+ Style/CharacterLiteral:
368
+ Description: 'Checks for uses of character literals.'
369
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-character-literals'
370
+ Enabled: false
371
+
372
+ Style/ClassAndModuleChildren:
373
+ Description: 'Checks style of children classes and modules.'
374
+ Enabled: false
375
+ EnforcedStyle: nested
376
+
377
+ Style/ClassVars:
378
+ Description: 'Avoid the use of class variables.'
379
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-class-vars'
380
+ Enabled: true
381
+
382
+ Style/CollectionMethods:
383
+ Enabled: true
384
+ PreferredMethods:
385
+ find: detect
386
+ inject: reduce
387
+ collect: map
388
+ find_all: select
389
+
390
+ Style/HashAsLastArrayItem:
391
+ Enabled: true
392
+ StyleGuide: 'https://github.com/rubocop-hq/ruby-style-guide#hash-literal-as-last-array-item'
393
+ EnforcedStyle: no_braces
394
+
395
+ Style/ColonMethodCall:
396
+ Description: 'Do not use :: for method call.'
397
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#double-colons'
398
+ Enabled: false
399
+
400
+ Style/CommentAnnotation:
401
+ Description: >-
402
+ Checks formatting of special comments
403
+ (TODO, FIXME, OPTIMIZE, HACK, REVIEW).
404
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#annotate-keywords'
405
+ Enabled: false
406
+
407
+ Style/ConditionalAssignment:
408
+ Description: >-
409
+ Use the return of the conditional for variable assignment and
410
+ comparison.
411
+ Enabled: false
412
+
413
+ Style/Documentation:
414
+ Description: 'Document classes and non-namespace modules.'
415
+ Enabled: false
416
+
417
+ Style/DoubleNegation:
418
+ Description: 'Checks for uses of double negation (!!).'
419
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-bang-bang'
420
+ Enabled: false
421
+
422
+ Style/EachWithObject:
423
+ Description: 'Prefer `each_with_object` over `inject` or `reduce`.'
424
+ Enabled: true
425
+
426
+ Style/EmptyLiteral:
427
+ Description: 'Prefer literals to Array.new/Hash.new/String.new.'
428
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#literal-array-hash'
429
+ Enabled: true
430
+
431
+ Style/EmptyMethod:
432
+ Description: 'Put empty methods on a single line.'
433
+ Enabled: true
434
+
435
+ # Checks whether the source file has a utf-8 encoding comment or not
436
+ # AutoCorrectEncodingComment must match the regex
437
+ # /#.*coding\s?[:=]\s?(?:UTF|utf)-8/
438
+ Style/Encoding:
439
+ Enabled: false
440
+
441
+ Style/EvenOdd:
442
+ Description: 'Favor the use of Fixnum#even? && Fixnum#odd?'
443
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#predicate-methods'
444
+ Enabled: true
445
+
446
+ Style/ExponentialNotation:
447
+ Description: 'When using exponential notation, favor a mantissa between 1 (inclusive) and 10 (exclusive).'
448
+ StyleGuide: '#exponential-notation'
449
+ Enabled: true
450
+ VersionAdded: '0.82'
451
+ EnforcedStyle: scientific
452
+ SupportedStyles:
453
+ - scientific
454
+ - engineering
455
+ - integral
456
+
457
+ Style/FrozenStringLiteralComment:
458
+ Description: >-
459
+ Add the frozen_string_literal comment to the top of files
460
+ to help transition from Ruby 2.3.0 to Ruby 3.0.
461
+ Enabled: false
462
+
463
+ Style/FormatString:
464
+ Description: 'Enforce the use of Kernel#sprintf, Kernel#format or String#%.'
465
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#sprintf'
466
+ Enabled: false
467
+
468
+ Style/FormatStringToken:
469
+ Enabled: false
470
+
471
+ Style/GlobalVars:
472
+ Description: 'Do not introduce global variables.'
473
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#instance-vars'
474
+ Reference: 'http://www.zenspider.com/Languages/Ruby/QuickRef.html'
475
+ Enabled: false
476
+
477
+ Style/GuardClause:
478
+ Description: 'Check for conditionals that can be replaced with guard clauses'
479
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals'
480
+ Enabled: true
481
+
482
+ Style/HashEachMethods:
483
+ Description: 'Use Hash#each_key and Hash#each_value.'
484
+ StyleGuide: '#hash-each'
485
+ Enabled: true
486
+ VersionAdded: '0.80'
487
+ Safe: false
488
+
489
+ Style/HashTransformKeys:
490
+ Description: 'Prefer `transform_keys` over `each_with_object` and `map`.'
491
+ Enabled: true
492
+ VersionAdded: '0.80'
493
+ Safe: false
494
+
495
+ Style/HashTransformValues:
496
+ Description: 'Prefer `transform_values` over `each_with_object` and `map`.'
497
+ Enabled: true
498
+ VersionAdded: '0.80'
499
+ Safe: false
500
+
501
+ Style/IfUnlessModifier:
502
+ Description: >-
503
+ Favor modifier if/unless usage when you have a
504
+ single-line body.
505
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#if-as-a-modifier'
506
+ Enabled: true
507
+
508
+ Style/IfWithSemicolon:
509
+ Description: 'Do not use if x; .... Use the ternary operator instead.'
510
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-semicolon-ifs'
511
+ Enabled: false
512
+
513
+ Style/InlineComment:
514
+ Description: 'Avoid inline comments.'
515
+ Enabled: false
516
+
517
+ Style/Lambda:
518
+ Description: 'Use the new lambda literal syntax for single-line blocks.'
519
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#lambda-multi-line'
520
+ Enabled: true
521
+
522
+ Style/LambdaCall:
523
+ Description: 'Use lambda.call(...) instead of lambda.(...).'
524
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#proc-call'
525
+ Enabled: false
526
+
527
+ Style/LineEndConcatenation:
528
+ Description: >-
529
+ Use \ instead of + or << to concatenate two string literals at
530
+ line end.
531
+ Enabled: false
532
+
533
+
534
+ Style/PreferredHashMethods:
535
+ Description: 'Checks use of `has_key?` and `has_value?` Hash methods.'
536
+ StyleGuide: '#hash-key'
537
+ Enabled: false
538
+
539
+ Style/RedundantFetchBlock:
540
+ Description: >-
541
+ Use `fetch(key, value)` instead of `fetch(key) { value }`
542
+ when value has Numeric, Rational, Complex, Symbol or String type, `false`, `true`, `nil` or is a constant.
543
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#hashfetch-with-argument-vs-hashfetch--block-code'
544
+ Enabled: true
545
+ Safe: false
546
+ # If enabled, this cop will autocorrect usages of
547
+ # `fetch` being called with block returning a constant.
548
+ # This can be dangerous since constants will not be defined at that moment.
549
+ SafeForConstants: false
550
+ VersionAdded: '0.86'
551
+
552
+ Style/RedundantRegexpCharacterClass:
553
+ Description: 'Checks for unnecessary single-element Regexp character classes.'
554
+ Enabled: true
555
+ VersionAdded: '0.85'
556
+
557
+ Style/RedundantRegexpEscape:
558
+ Description: 'Checks for redundant escapes in Regexps.'
559
+ Enabled: true
560
+ VersionAdded: '0.85'
561
+
562
+ Style/SafeNavigation:
563
+ Description: >-
564
+ This cop transforms usages of a method call safeguarded by
565
+ a check for the existence of the object to
566
+ safe navigation (`&.`).
567
+ Enabled: false
568
+ VersionAdded: '0.43'
569
+ VersionChanged: '0.56'
570
+ # Safe navigation may cause a statement to start returning `nil` in addition
571
+ # to whatever it used to return.
572
+ ConvertCodeThatCanStartToReturnNil: false
573
+ AllowedMethods:
574
+ - present?
575
+ - blank?
576
+ - presence
577
+ - try
578
+ - try!
579
+
580
+ Style/SlicingWithRange:
581
+ Description: 'Checks array slicing is done with endless ranges when suitable.'
582
+ Enabled: true
583
+ VersionAdded: '0.83'
584
+ Safe: false
585
+
586
+ Style/SymbolProc:
587
+ Enabled: true
588
+ Exclude:
589
+ - config/initializers/**/*
590
+
591
+ Style/ModuleFunction:
592
+ Description: 'Checks for usage of `extend self` in modules.'
593
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#module-function'
594
+ Enabled: false
595
+
596
+ Style/MultilineBlockChain:
597
+ Description: 'Avoid multi-line chains of blocks.'
598
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#single-line-blocks'
599
+ Enabled: false
600
+
601
+ Style/NegatedIf:
602
+ Description: >-
603
+ Favor unless over if for negative conditions
604
+ (or control flow or).
605
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#unless-for-negatives'
606
+ Enabled: false
607
+
608
+ Style/NegatedWhile:
609
+ Description: 'Favor until over while for negative conditions.'
610
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#until-for-negatives'
611
+ Enabled: false
612
+
613
+ Style/Next:
614
+ Description: 'Use `next` to skip iteration instead of a condition at the end.'
615
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals'
616
+ Enabled: false
617
+
618
+ Style/NilComparison:
619
+ Description: 'Prefer x.nil? to x == nil.'
620
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#predicate-methods'
621
+ Enabled: false
622
+
623
+ Style/Not:
624
+ Description: 'Use ! instead of not.'
625
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#bang-not-not'
626
+ Enabled: false
627
+
628
+ Style/NumericLiterals:
629
+ Description: >-
630
+ Add underscores to large numeric literals to improve their
631
+ readability.
632
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscores-in-numerics'
633
+ Enabled: false
634
+
635
+ Style/OneLineConditional:
636
+ Description: >-
637
+ Favor the ternary operator(?:) over
638
+ if/then/else/end constructs.
639
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#ternary-operator'
640
+ Enabled: false
641
+
642
+ Style/IfInsideElse:
643
+ Enabled: false
644
+
645
+ Style/NumericPredicate:
646
+ Enabled: false
647
+
648
+ Style/PercentLiteralDelimiters:
649
+ Description: 'Use `%`-literal delimiters consistently'
650
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-literal-braces'
651
+ Enabled: false
652
+
653
+ Style/PerlBackrefs:
654
+ Description: 'Avoid Perl-style regex back references.'
655
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-perl-regexp-last-matchers'
656
+ Enabled: false
657
+
658
+ Style/Proc:
659
+ Description: 'Use proc instead of Proc.new.'
660
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#proc'
661
+ Enabled: false
662
+
663
+ Style/RaiseArgs:
664
+ Description: 'Checks the arguments passed to raise/fail.'
665
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#exception-class-messages'
666
+ Enabled: false
667
+
668
+ Style/RegexpLiteral:
669
+ Description: 'Use / or %r around regular expressions.'
670
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-r'
671
+ Enabled: false
672
+
673
+ Style/Sample:
674
+ Description: >-
675
+ Use `sample` instead of `shuffle.first`,
676
+ `shuffle.last`, and `shuffle[Fixnum]`.
677
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#arrayshufflefirst-vs-arraysample-code'
678
+ Enabled: true
679
+
680
+ Style/SelfAssignment:
681
+ Description: >-
682
+ Checks for places where self-assignment shorthand should have
683
+ been used.
684
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#self-assignment'
685
+ Enabled: false
686
+
687
+ Style/SingleLineBlockParams:
688
+ Description: 'Enforces the names of some block params.'
689
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#reduce-blocks'
690
+ Enabled: false
691
+
692
+ Style/SingleLineMethods:
693
+ Description: 'Avoid single-line methods.'
694
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-single-line-methods'
695
+ Enabled: false
696
+
697
+ Style/SignalException:
698
+ Description: 'Checks for proper usage of fail and raise.'
699
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#fail-method'
700
+ Enabled: true
701
+
702
+ Style/SpecialGlobalVars:
703
+ Description: 'Avoid Perl-style global variables.'
704
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-cryptic-perlisms'
705
+ Enabled: false
706
+
707
+ Style/StringLiterals:
708
+ Description: 'Checks if uses of quotes match the configured preference.'
709
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#consistent-string-literals'
710
+ EnforcedStyle: double_quotes
711
+ Enabled: true
712
+ Exclude:
713
+ - config/environment.rb
714
+
715
+ Style/TrailingCommaInArguments:
716
+ Description: 'Checks for trailing comma in argument lists.'
717
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
718
+ EnforcedStyleForMultiline: comma
719
+ SupportedStylesForMultiline:
720
+ - comma
721
+ - consistent_comma
722
+ - no_comma
723
+ Enabled: true
724
+
725
+ Style/TrailingCommaInArrayLiteral:
726
+ Description: 'Checks for trailing comma in array and hash literals.'
727
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
728
+ EnforcedStyleForMultiline: comma
729
+ SupportedStylesForMultiline:
730
+ - comma
731
+ - consistent_comma
732
+ - no_comma
733
+ Enabled: true
734
+
735
+ Style/TrailingCommaInHashLiteral:
736
+ Description: 'Checks for trailing comma in array and hash literals.'
737
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
738
+ EnforcedStyleForMultiline: comma
739
+ SupportedStylesForMultiline:
740
+ - comma
741
+ - consistent_comma
742
+ - no_comma
743
+ Enabled: true
744
+
745
+ Style/TrivialAccessors:
746
+ Description: 'Prefer attr_* methods to trivial readers/writers.'
747
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#attr_family'
748
+ Enabled: false
749
+
750
+ Style/VariableInterpolation:
751
+ Description: >-
752
+ Don't interpolate global, instance and class variables
753
+ directly in strings.
754
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#curlies-interpolate'
755
+ Enabled: false
756
+
757
+ Style/WhenThen:
758
+ Description: 'Use when x then ... for one-line cases.'
759
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#one-line-cases'
760
+ Enabled: false
761
+
762
+ Style/WhileUntilModifier:
763
+ Description: >-
764
+ Favor modifier while/until usage when you have a
765
+ single-line body.
766
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#while-as-a-modifier'
767
+ Enabled: false
768
+
769
+ Style/WordArray:
770
+ Description: 'Use %w or %W for arrays of words.'
771
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-w'
772
+ Enabled: false
773
+
774
+ # Performance
775
+
776
+ Performance/CaseWhenSplat:
777
+ Description: >-
778
+ Place `when` conditions that use splat at the end
779
+ of the list of `when` branches.
780
+ Enabled: true
781
+
782
+ Performance/Count:
783
+ Description: >-
784
+ Use `count` instead of `select...size`, `reject...size`,
785
+ `select...count`, `reject...count`, `select...length`,
786
+ and `reject...length`.
787
+ Enabled: true
788
+
789
+ Performance/Detect:
790
+ Description: >-
791
+ Use `detect` instead of `select.first`, `find_all.first`,
792
+ `select.last`, and `find_all.last`.
793
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerabledetect-vs-enumerableselectfirst-code'
794
+ Enabled: true
795
+
796
+ Performance/FlatMap:
797
+ Description: >-
798
+ Use `Enumerable#flat_map`
799
+ instead of `Enumerable#map...Array#flatten(1)`
800
+ or `Enumberable#collect..Array#flatten(1)`
801
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerablemaparrayflatten-vs-enumerableflat_map-code'
802
+ Enabled: true
803
+
804
+ Performance/ReverseEach:
805
+ Description: 'Use `reverse_each` instead of `reverse.each`.'
806
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerablereverseeach-vs-enumerablereverse_each-code'
807
+ Enabled: true
808
+
809
+ Performance/Size:
810
+ Description: >-
811
+ Use `size` instead of `count` for counting
812
+ the number of elements in `Array` and `Hash`.
813
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#arraycount-vs-arraysize-code'
814
+ Enabled: true
815
+
816
+ Performance/StringReplacement:
817
+ Description: >-
818
+ Use `tr` instead of `gsub` when you are replacing the same
819
+ number of characters. Use `delete` instead of `gsub` when
820
+ you are deleting characters.
821
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#stringgsub-vs-stringtr-code'
822
+ Enabled: true
823
+
824
+ # Rails
825
+
826
+ Rails/ActionFilter:
827
+ Description: 'Enforces consistent use of action filter methods.'
828
+ Enabled: false
829
+
830
+ Rails/Date:
831
+ Description: >-
832
+ Checks the correct usage of date aware methods,
833
+ such as Date.today, Date.current etc.
834
+ Enabled: true
835
+
836
+ Rails/Delegate:
837
+ Description: 'Prefer delegate method for delegations.'
838
+ Enabled: false
839
+
840
+ Rails/DynamicFindBy:
841
+ Description: 'Prefer non-dynamic finder methods.'
842
+ Enabled: false
843
+
844
+ Rails/FindBy:
845
+ Description: 'Prefer find_by over where.first.'
846
+ Enabled: true
847
+
848
+ Rails/FindEach:
849
+ Description: 'Prefer all.find_each over all.find.'
850
+ Enabled: true
851
+
852
+ Rails/InverseOf:
853
+ Enabled: false
854
+
855
+ Rails/HasAndBelongsToMany:
856
+ Description: 'Prefer has_many :through to has_and_belongs_to_many.'
857
+ Enabled: false
858
+
859
+ Rails/HasManyOrHasOneDependent:
860
+ Description: 'Define the dependent option to the has_many and has_one associations.'
861
+ StyleGuide: 'https://rails.rubystyle.guide#has_many-has_one-dependent-option'
862
+ Enabled: false
863
+ VersionAdded: '0.50'
864
+ Include:
865
+ - app/models/**/*.rb
866
+
867
+ Rails/HttpStatus:
868
+ Description: Enforces use of symbolic or numeric value to describe HTTP status.
869
+ Enabled: true
870
+ EnforcedStyle: symbolic
871
+ SupportedStyles:
872
+ - numeric
873
+ - symbolic
874
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Rails/HttpStatus
875
+
876
+ Rails/Output:
877
+ Description: 'Checks for calls to puts, print, etc.'
878
+ Enabled: true
879
+
880
+ Rails/ReadWriteAttribute:
881
+ Description: >-
882
+ Checks for read_attribute(:attr) and
883
+ write_attribute(:attr, val).
884
+ Enabled: false
885
+
886
+ Rails/ScopeArgs:
887
+ Description: 'Checks the arguments of ActiveRecord scopes.'
888
+ Enabled: false
889
+
890
+ Rails/SkipsModelValidations:
891
+ Description: 'Checks for the use of ActiveRecord persistence methods that bypass model validations'
892
+ Enabled: true
893
+
894
+ Rails/TimeZone:
895
+ Description: 'Checks the correct usage of time zone aware methods.'
896
+ StyleGuide: 'https://github.com/bbatsov/rails-style-guide#time'
897
+ Reference: 'http://danilenko.org/2012/7/6/rails_timezones'
898
+ Enabled: false
899
+
900
+ Rails/Validation:
901
+ Description: 'Use validates :attribute, hash of validations.'
902
+ Enabled: false
903
+
904
+ RSpec/Capybara/CurrentPathExpectation:
905
+ Description: Checks that no expectations are set on Capybara's `current_path`.
906
+ Enabled: true
907
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Capybara/CurrentPathExpectation
908
+
909
+ RSpec/Capybara/FeatureMethods:
910
+ Description: Checks for consistent method usage in feature specs.
911
+ Enabled: false
912
+ EnabledMethods: []
913
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Capybara/FeatureMethods
914
+
915
+ RSpec/FactoryBot/AttributeDefinedStatically:
916
+ Description: Always declare attribute values as blocks.
917
+ Enabled: true
918
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FactoryBot/AttributeDefinedStatically
919
+
920
+ RSpec/FactoryBot/CreateList:
921
+ Description: Checks for create_list usage.
922
+ Enabled: false
923
+ EnforcedStyle: create_list
924
+ SupportedStyles:
925
+ - create_list
926
+ - n_times
927
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FactoryBot/CreateList
928
+
929
+ # rubocop-rspec cops
930
+
931
+ RSpec/AnyInstance:
932
+ Description: Check that instances are not being stubbed globally.
933
+ Enabled: true
934
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/AnyInstance
935
+
936
+ RSpec/AroundBlock:
937
+ Description: Checks that around blocks actually run the test.
938
+ Enabled: true
939
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/AroundBlock
940
+
941
+ RSpec/AlignLeftLetBrace:
942
+ Description: Checks that left braces for adjacent single line lets are aligned.
943
+ Enabled: false
944
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/AlignLeftLetBrace
945
+
946
+ RSpec/AlignRightLetBrace:
947
+ Description: Checks that right braces for adjacent single line lets are aligned.
948
+ Enabled: false
949
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/AlignRightLetBrace
950
+
951
+ RSpec/Be:
952
+ Description: Check for expectations where `be` is used without argument.
953
+ Enabled: true
954
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Be
955
+
956
+ RSpec/BeEql:
957
+ Description: Check for expectations where `be(...)` can replace `eql(...)`.
958
+ Enabled: true
959
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/BeEql
960
+
961
+ RSpec/BeforeAfterAll:
962
+ Description: Check that before/after(:all) isn't being used.
963
+ Enabled: true
964
+ Exclude:
965
+ - spec/spec_helper.rb
966
+ - spec/rails_helper.rb
967
+ - spec/support/**/*.rb
968
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/BeforeAfterAll
969
+
970
+ RSpec/ContextWording:
971
+ Description: "`context` block descriptions should start with 'when', or 'with'."
972
+ Enabled: false
973
+ Prefixes:
974
+ - when
975
+ - with
976
+ - without
977
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ContextWording
978
+
979
+ RSpec/DescribeClass:
980
+ Description: Check that the first argument to the top level describe is a constant.
981
+ Enabled: false
982
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/DescribeClass
983
+
984
+ RSpec/DescribedClass:
985
+ Description: Checks that tests use `described_class`.
986
+ SkipBlocks: false
987
+ Enabled: false
988
+ EnforcedStyle: described_class
989
+ SupportedStyles:
990
+ - described_class
991
+ - explicit
992
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/DescribedClass
993
+
994
+ RSpec/DescribeMethod:
995
+ Description: Checks that the second argument to `describe` specifies a method.
996
+ Enabled: false
997
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/DescribeMethod
998
+
999
+ RSpec/DescribeSymbol:
1000
+ Description: Avoid describing symbols.
1001
+ Enabled: true
1002
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/DescribeSymbol
1003
+
1004
+ RSpec/IteratedExpectation:
1005
+ Description: Check that `all` matcher is used instead of iterating over an array.
1006
+ Enabled: true
1007
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/IteratedExpectation
1008
+
1009
+ RSpec/EmptyExampleGroup:
1010
+ Description: Checks if an example group does not include any tests.
1011
+ Enabled: true
1012
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyExampleGroup
1013
+
1014
+ RSpec/EmptyLineAfterExampleGroup:
1015
+ Description: Checks if there is an empty line after example group blocks.
1016
+ Enabled: true
1017
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyLineAfterExampleGroup
1018
+
1019
+ RSpec/EmptyLineAfterFinalLet:
1020
+ Description: Checks if there is an empty line after the last let block.
1021
+ Enabled: true
1022
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyLineAfterFinalLet
1023
+
1024
+ RSpec/EmptyLineAfterHook:
1025
+ Description: Checks if there is an empty line after hook blocks.
1026
+ Enabled: true
1027
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyLineAfterHook
1028
+
1029
+ RSpec/EmptyLineAfterSubject:
1030
+ Description: Checks if there is an empty line after subject block.
1031
+ Enabled: true
1032
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyLineAfterSubject
1033
+
1034
+ RSpec/ExampleLength:
1035
+ Description: Checks for long examples.
1036
+ Enabled: false
1037
+ Max: 5
1038
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExampleLength
1039
+
1040
+ RSpec/ExampleWithoutDescription:
1041
+ Description: Checks for examples without a description.
1042
+ Enabled: true
1043
+ EnforcedStyle: always_allow
1044
+ SupportedStyles:
1045
+ - always_allow
1046
+ - single_line_only
1047
+ - disallow
1048
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExampleWithoutDescription
1049
+
1050
+ RSpec/ExampleWording:
1051
+ Description: Checks for common mistakes in example descriptions.
1052
+ Enabled: true
1053
+ CustomTransform:
1054
+ be: is
1055
+ BE: IS
1056
+ have: has
1057
+ HAVE: HAS
1058
+ IgnoredWords: []
1059
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExampleWording
1060
+
1061
+ RSpec/ExpectActual:
1062
+ Description: Checks for `expect(...)` calls containing literal values.
1063
+ Enabled: true
1064
+ Exclude:
1065
+ - spec/routing/**/*
1066
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExpectActual
1067
+
1068
+ RSpec/ExpectChange:
1069
+ Description: Checks for consistent style of change matcher.
1070
+ Enabled: true
1071
+ EnforcedStyle: method_call
1072
+ SupportedStyles:
1073
+ - method_call
1074
+ - block
1075
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExpectChange
1076
+
1077
+ RSpec/ExpectInHook:
1078
+ Enabled: true
1079
+ Description: Do not use `expect` in hooks such as `before`.
1080
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExpectInHook
1081
+
1082
+ RSpec/ExpectOutput:
1083
+ Description: Checks for opportunities to use `expect { ... }.to output`.
1084
+ Enabled: true
1085
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExpectOutput
1086
+
1087
+ RSpec/FilePath:
1088
+ Description: Checks that spec file paths are consistent with the test subject.
1089
+ Enabled: true
1090
+ CustomTransform:
1091
+ RuboCop: rubocop
1092
+ RSpec: rspec
1093
+ IgnoreMethods: false
1094
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FilePath
1095
+
1096
+ RSpec/Focus:
1097
+ Description: Checks if examples are focused.
1098
+ Enabled: true
1099
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Focus
1100
+
1101
+ RSpec/HookArgument:
1102
+ Description: Checks the arguments passed to `before`, `around`, and `after`.
1103
+ Enabled: true
1104
+ EnforcedStyle: implicit
1105
+ SupportedStyles:
1106
+ - implicit
1107
+ - each
1108
+ - example
1109
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/HookArgument
1110
+
1111
+ RSpec/HooksBeforeExamples:
1112
+ Enabled: true
1113
+ Description: Checks for before/around/after hooks that come after an example.
1114
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/HooksBeforeExamples
1115
+
1116
+ RSpec/ImplicitExpect:
1117
+ Description: Check that a consistent implicit expectation style is used.
1118
+ Enabled: true
1119
+ EnforcedStyle: is_expected
1120
+ SupportedStyles:
1121
+ - is_expected
1122
+ - should
1123
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ImplicitExpect
1124
+
1125
+ RSpec/ImplicitSubject:
1126
+ Enabled: false
1127
+ Exclude:
1128
+ - 'spec/controllers/**/*.rb'
1129
+ Description: Checks for usage of implicit subject (`is_expected` / `should`).
1130
+ EnforcedStyle: single_line_only
1131
+ SupportedStyles:
1132
+ - single_line_only
1133
+ - disallow
1134
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ImplicitSubject
1135
+
1136
+ RSpec/InstanceSpy:
1137
+ Description: Checks for `instance_double` used with `have_received`.
1138
+ Enabled: true
1139
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/InstanceSpy
1140
+
1141
+ RSpec/InstanceVariable:
1142
+ Description: Checks for instance variable usage in specs.
1143
+ AssignmentOnly: false
1144
+ Enabled: true
1145
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/InstanceVariable
1146
+
1147
+ RSpec/ItBehavesLike:
1148
+ Description: Checks that only one `it_behaves_like` style is used.
1149
+ Enabled: true
1150
+ EnforcedStyle: it_behaves_like
1151
+ SupportedStyles:
1152
+ - it_behaves_like
1153
+ - it_should_behave_like
1154
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ItBehavesLike
1155
+
1156
+ RSpec/LeadingSubject:
1157
+ Description: Enforce that subject is the first definition in the test.
1158
+ Enabled: true
1159
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/LeadingSubject
1160
+
1161
+ RSpec/LeakyConstantDeclaration:
1162
+ Description: Checks that no class, module, or constant is declared.
1163
+ Enabled: true
1164
+ StyleGuide: https://rubocop-rspec.readthedocs.io/en/latest/cops_rspec/#rspecleakyconstantdeclaration
1165
+
1166
+ RSpec/LetBeforeExamples:
1167
+ Description: Checks for `let` definitions that come after an example.
1168
+ Enabled: true
1169
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/LetBeforeExamples
1170
+
1171
+ RSpec/LetSetup:
1172
+ Description: Checks unreferenced `let!` calls being used for test setup.
1173
+ Enabled: true
1174
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/LetSetup
1175
+
1176
+ RSpec/MessageChain:
1177
+ Description: Check that chains of messages are not being stubbed.
1178
+ Enabled: true
1179
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MessageChain
1180
+
1181
+ RSpec/MessageExpectation:
1182
+ Description: Checks for consistent message expectation style.
1183
+ Enabled: false
1184
+ EnforcedStyle: allow
1185
+ SupportedStyles:
1186
+ - allow
1187
+ - expect
1188
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MessageExpectation
1189
+
1190
+ RSpec/MessageSpies:
1191
+ Description: Checks that message expectations are set using spies.
1192
+ Enabled: true
1193
+ EnforcedStyle: have_received
1194
+ SupportedStyles:
1195
+ - have_received
1196
+ - receive
1197
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MessageSpies
1198
+
1199
+ RSpec/MissingExampleGroupArgument:
1200
+ Description: Checks that the first argument to an example group is not empty.
1201
+ Enabled: true
1202
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MissingExampleGroupArgument
1203
+
1204
+ RSpec/MultipleDescribes:
1205
+ Description: Checks for multiple top level describes.
1206
+ Enabled: true
1207
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MultipleDescribes
1208
+ Exclude:
1209
+ - spec/tasks/**/*_spec.rb
1210
+
1211
+ RSpec/MultipleExpectations:
1212
+ Description: Checks if examples contain too many `expect` calls.
1213
+ Enabled: false
1214
+ Max: 1
1215
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MultipleExpectations
1216
+
1217
+ RSpec/MultipleSubjects:
1218
+ Description: Checks if an example group defines `subject` multiple times.
1219
+ Enabled: true
1220
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MultipleSubjects
1221
+
1222
+ RSpec/NamedSubject:
1223
+ Description: Checks for explicitly referenced test subjects.
1224
+ Enabled: true
1225
+ Exclude:
1226
+ - spec/tasks/**/*
1227
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/NamedSubject
1228
+
1229
+ RSpec/NestedGroups:
1230
+ Description: Checks for nested example groups.
1231
+ Enabled: false
1232
+ Max: 5
1233
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/NestedGroups
1234
+
1235
+ RSpec/NotToNot:
1236
+ Description: Checks for consistent method usage for negating expectations.
1237
+ EnforcedStyle: not_to
1238
+ SupportedStyles:
1239
+ - not_to
1240
+ - to_not
1241
+ Enabled: true
1242
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/NotToNot
1243
+
1244
+ RSpec/OverwritingSetup:
1245
+ Enabled: true
1246
+ Description: Checks if there is a let/subject that overwrites an existing one.
1247
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/OverwritingSetup
1248
+
1249
+ RSpec/Pending:
1250
+ Enabled: true
1251
+ Description: Checks for any pending or skipped examples.
1252
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Pending
1253
+
1254
+ RSpec/ReceiveCounts:
1255
+ Enabled: true
1256
+ Description: Check for `once` and `twice` receive counts matchers usage.
1257
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ReceiveCounts
1258
+
1259
+ RSpec/ReceiveNever:
1260
+ Enabled: true
1261
+ Description: Prefer `not_to receive(...)` over `receive(...).never`.
1262
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ReceiveNever
1263
+
1264
+ RSpec/RepeatedDescription:
1265
+ Enabled: true
1266
+ Description: Check for repeated description strings in example groups.
1267
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/RepeatedDescription
1268
+
1269
+ RSpec/RepeatedExample:
1270
+ Enabled: true
1271
+ Description: Check for repeated examples within example groups.
1272
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/RepeatedExample
1273
+
1274
+ RSpec/RepeatedExampleGroupBody:
1275
+ Enabled: true
1276
+ Description: Check for repeated examples within example groups.
1277
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/RepeatedExample
1278
+ Exclude:
1279
+ - spec/tasks/**/*
1280
+
1281
+ RSpec/ReturnFromStub:
1282
+ Enabled: true
1283
+ Description: Checks for consistent style of stub's return setting.
1284
+ EnforcedStyle: and_return
1285
+ SupportedStyles:
1286
+ - and_return
1287
+ - block
1288
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ReturnFromStub
1289
+
1290
+ RSpec/SharedContext:
1291
+ Description: Checks for proper shared_context and shared_examples usage.
1292
+ Enabled: true
1293
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/SharedContext
1294
+
1295
+ RSpec/SharedExamples:
1296
+ Description: Enforces use of string to titleize shared examples.
1297
+ Enabled: true
1298
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/SharedExamples
1299
+
1300
+ RSpec/SingleArgumentMessageChain:
1301
+ Description: Checks that chains of messages contain more than one element.
1302
+ Enabled: true
1303
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/SingleArgumentMessageChain
1304
+
1305
+ RSpec/ScatteredLet:
1306
+ Description: Checks for let scattered across the example group.
1307
+ Enabled: true
1308
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ScatteredLet
1309
+
1310
+ RSpec/ScatteredSetup:
1311
+ Description: Checks for setup scattered across multiple hooks in an example group.
1312
+ Enabled: true
1313
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ScatteredSetup
1314
+
1315
+ RSpec/SubjectStub:
1316
+ Description: Checks for stubbed test subjects.
1317
+ Enabled: true
1318
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/SubjectStub
1319
+
1320
+ RSpec/PredicateMatcher:
1321
+ Description: Prefer using predicate matcher over using predicate method directly.
1322
+ Enabled: true
1323
+ Strict: true
1324
+ EnforcedStyle: inflected
1325
+ SupportedStyles:
1326
+ - inflected
1327
+ - explicit
1328
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/PredicateMatcher
1329
+
1330
+ RSpec/VerifiedDoubles:
1331
+ Description: Prefer using verifying doubles over normal doubles.
1332
+ Enabled: true
1333
+ IgnoreSymbolicNames: false
1334
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/VerifiedDoubles
1335
+
1336
+ RSpec/VoidExpect:
1337
+ Description: This cop checks void `expect()`.
1338
+ Enabled: true
1339
+ StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/VoidExpect