makandra-rubocop 9.1.0 → 10.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.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/CHANGELOG.md +9 -0
- data/Gemfile.lock +28 -27
- data/config/default.yml +278 -88
- data/config/ext/rails.yml +250 -14
- data/config/ext/rspec.yml +277 -100
- data/lib/makandra_rubocop/version.rb +1 -1
- data/makandra-rubocop.gemspec +4 -4
- metadata +10 -10
data/config/ext/rails.yml
CHANGED
@@ -15,7 +15,7 @@ AllCops:
|
|
15
15
|
- 'public/system/**/*'
|
16
16
|
- 'db/schema.rb'
|
17
17
|
# What version of Rails is the inspected code using? If a value is specified
|
18
|
-
# for TargetRailsVersion then it is used. Acceptable values are
|
18
|
+
# for TargetRailsVersion then it is used. Acceptable values are specified
|
19
19
|
# as a float (i.e. 5.1); the patch version of Rails should not be included.
|
20
20
|
# If TargetRailsVersion is not set, RuboCop will parse the Gemfile.lock or
|
21
21
|
# gems.locked file to find the version of Rails that has been bound to the
|
@@ -27,7 +27,7 @@ Lint/NumberConversion:
|
|
27
27
|
# Add Rails' duration methods to the ignore list for `Lint/NumberConversion`
|
28
28
|
# so that calling `to_i` on one of these does not register an offense.
|
29
29
|
# See: https://github.com/rubocop/rubocop/issues/8950
|
30
|
-
|
30
|
+
AllowedMethods:
|
31
31
|
- ago
|
32
32
|
- from_now
|
33
33
|
- second
|
@@ -44,6 +44,28 @@ Lint/NumberConversion:
|
|
44
44
|
- fortnights
|
45
45
|
- in_milliseconds
|
46
46
|
|
47
|
+
Rails:
|
48
|
+
Enabled: true
|
49
|
+
DocumentationBaseURL: https://docs.rubocop.org/rubocop-rails
|
50
|
+
|
51
|
+
Rails/ActionControllerFlashBeforeRender:
|
52
|
+
Description: 'Use `flash.now` instead of `flash` before `render`.'
|
53
|
+
StyleGuide: 'https://rails.rubystyle.guide/#flash-before-render'
|
54
|
+
Reference: 'https://api.rubyonrails.org/classes/ActionController/FlashBeforeRender.html'
|
55
|
+
Enabled: false # there may be cases where we actually want to use `flash` before a render.
|
56
|
+
SafeAutoCorrect: false
|
57
|
+
VersionAdded: '2.16'
|
58
|
+
|
59
|
+
Rails/ActionControllerTestCase:
|
60
|
+
Description: 'Use `ActionDispatch::IntegrationTest` instead of `ActionController::TestCase`.'
|
61
|
+
StyleGuide: 'https://rails.rubystyle.guide/#integration-testing'
|
62
|
+
Reference: 'https://api.rubyonrails.org/classes/ActionController/TestCase.html'
|
63
|
+
Enabled: false # we don't use this anyway
|
64
|
+
SafeAutoCorrect: false
|
65
|
+
VersionAdded: '2.14'
|
66
|
+
Include:
|
67
|
+
- '**/test/**/*.rb'
|
68
|
+
|
47
69
|
Rails/ActionFilter:
|
48
70
|
Description: 'Enforces consistent use of action filter methods.'
|
49
71
|
Enabled: true
|
@@ -54,6 +76,22 @@ Rails/ActionFilter:
|
|
54
76
|
- filter
|
55
77
|
Include:
|
56
78
|
- app/controllers/**/*.rb
|
79
|
+
- app/mailers/**/*.rb
|
80
|
+
|
81
|
+
Rails/ActionOrder:
|
82
|
+
Description: 'Enforce consistent ordering of controller actions.'
|
83
|
+
Enabled: false # The best order is debatable, and there maybe valid reasons not to stick to any particular order
|
84
|
+
VersionAdded: '2.17'
|
85
|
+
ExpectedOrder:
|
86
|
+
- index
|
87
|
+
- show
|
88
|
+
- new
|
89
|
+
- edit
|
90
|
+
- create
|
91
|
+
- update
|
92
|
+
- destroy
|
93
|
+
Include:
|
94
|
+
- app/controllers/**/*.rb
|
57
95
|
|
58
96
|
Rails/ActiveRecordAliases:
|
59
97
|
Description: >-
|
@@ -89,6 +127,15 @@ Rails/ActiveSupportAliases:
|
|
89
127
|
Enabled: false
|
90
128
|
VersionAdded: '0.48'
|
91
129
|
|
130
|
+
Rails/ActiveSupportOnLoad:
|
131
|
+
Description: 'Use `ActiveSupport.on_load(...)` to patch Rails framework classes.'
|
132
|
+
Enabled: true
|
133
|
+
Reference:
|
134
|
+
- 'https://api.rubyonrails.org/classes/ActiveSupport/LazyLoadHooks.html'
|
135
|
+
- 'https://guides.rubyonrails.org/engines.html#available-load-hooks'
|
136
|
+
SafeAutoCorrect: false
|
137
|
+
VersionAdded: '2.16'
|
138
|
+
|
92
139
|
Rails/AddColumnIndex:
|
93
140
|
Description: >-
|
94
141
|
Rails migrations don't make use of a given `index` key, but also
|
@@ -101,7 +148,7 @@ Rails/AddColumnIndex:
|
|
101
148
|
|
102
149
|
Rails/AfterCommitOverride:
|
103
150
|
Description: >-
|
104
|
-
|
151
|
+
Enforces that there is only one call to `after_commit`
|
105
152
|
(and its aliases - `after_create_commit`, `after_update_commit`,
|
106
153
|
and `after_destroy_commit`) with the same callback name per model.
|
107
154
|
Enabled: true
|
@@ -186,13 +233,27 @@ Rails/BulkChangeTable:
|
|
186
233
|
Include:
|
187
234
|
- db/migrate/*.rb
|
188
235
|
|
236
|
+
Rails/CompactBlank:
|
237
|
+
Description: 'Checks if collection can be blank-compacted with `compact_blank`.'
|
238
|
+
Enabled: false # This may lead to false positives. See https://docs.rubocop.org/rubocop-rails/cops_rails.html#railscompactblank
|
239
|
+
Safe: false
|
240
|
+
VersionAdded: '2.13'
|
241
|
+
|
189
242
|
Rails/ContentTag:
|
190
243
|
Description: 'Use `tag` instead of `content_tag`.'
|
191
244
|
Reference:
|
245
|
+
- 'https://github.com/rubocop/rubocop-rails/issues/260'
|
192
246
|
- 'https://github.com/rails/rails/issues/25195'
|
193
247
|
- 'https://api.rubyonrails.org/classes/ActionView/Helpers/TagHelper.html#method-i-content_tag'
|
194
248
|
Enabled: false # We currently use content_tag in many applications. If content_tag should become deprecated in the future we'll have to change it anyway, but until then, we'll keep the content_tag syntax
|
195
249
|
VersionAdded: '2.6'
|
250
|
+
VersionChanged: '2.12'
|
251
|
+
# This `Exclude` config prevents false positives for `tag` calls to `has_one: tag` and Puma configuration:
|
252
|
+
# https://puma.io/puma/Puma/DSL.html#tag-instance_method
|
253
|
+
# No helpers are used in normal models and configs.
|
254
|
+
Exclude:
|
255
|
+
- app/models/**/*.rb
|
256
|
+
- config/**/*.rb
|
196
257
|
|
197
258
|
Rails/CreateTableWithTimestamps:
|
198
259
|
Description: >-
|
@@ -202,6 +263,10 @@ Rails/CreateTableWithTimestamps:
|
|
202
263
|
VersionAdded: '0.52'
|
203
264
|
Include:
|
204
265
|
- db/migrate/*.rb
|
266
|
+
Exclude:
|
267
|
+
# Respect the `active_storage_variant_records` table of `*_create_active_storage_tables.active_storage.rb`
|
268
|
+
# auto-generated by `bin/rails active_storage:install` even if `created_at` is not specified.
|
269
|
+
- db/migrate/*_create_active_storage_tables.active_storage.rb
|
205
270
|
|
206
271
|
Rails/Date:
|
207
272
|
Description: >-
|
@@ -243,6 +308,35 @@ Rails/DelegateAllowBlank:
|
|
243
308
|
Enabled: true
|
244
309
|
VersionAdded: '0.44'
|
245
310
|
|
311
|
+
Rails/DeprecatedActiveModelErrorsMethods:
|
312
|
+
Description: 'Avoid manipulating ActiveModel errors hash directly.'
|
313
|
+
Enabled: true
|
314
|
+
Safe: false
|
315
|
+
VersionAdded: '2.14'
|
316
|
+
VersionChanged: '2.15'
|
317
|
+
|
318
|
+
Rails/DotSeparatedKeys:
|
319
|
+
Description: 'Enforces the use of dot-separated keys instead of `:scope` options in `I18n` translation methods.'
|
320
|
+
StyleGuide: 'https://rails.rubystyle.guide/#dot-separated-keys'
|
321
|
+
Enabled: false # if they key is set dynamically, using the scope option is more favorable than using dot-separated keys with string interpolation
|
322
|
+
VersionAdded: '2.15'
|
323
|
+
|
324
|
+
Rails/DuplicateAssociation:
|
325
|
+
Description: "Don't repeat associations in a model."
|
326
|
+
Enabled: true
|
327
|
+
VersionAdded: '2.14'
|
328
|
+
|
329
|
+
Rails/DuplicateScope:
|
330
|
+
Description: 'Multiple scopes share this same where clause.'
|
331
|
+
Enabled: true
|
332
|
+
VersionAdded: '2.14'
|
333
|
+
|
334
|
+
Rails/DurationArithmetic:
|
335
|
+
Description: 'Do not use duration as arithmetic operand with `Time.current`.'
|
336
|
+
StyleGuide: 'https://rails.rubystyle.guide#duration-arithmetic'
|
337
|
+
Enabled: true
|
338
|
+
VersionAdded: '2.13'
|
339
|
+
|
246
340
|
Rails/DynamicFindBy:
|
247
341
|
Description: 'Use `find_by` instead of dynamic `find_by_*`.'
|
248
342
|
StyleGuide: 'https://rails.rubystyle.guide#find_by'
|
@@ -252,10 +346,13 @@ Rails/DynamicFindBy:
|
|
252
346
|
# The `Whitelist` has been deprecated, Please use `AllowedMethods` instead.
|
253
347
|
Whitelist:
|
254
348
|
- find_by_sql
|
349
|
+
- find_by_token_for
|
255
350
|
AllowedMethods:
|
256
351
|
- find_by_sql
|
352
|
+
- find_by_token_for
|
257
353
|
AllowedReceivers:
|
258
354
|
- Gem::Specification
|
355
|
+
- page # Prevents a warning for `page.find_by_id`. See: https://github.com/rubocop/rubocop-rails/issues/778
|
259
356
|
|
260
357
|
Rails/EagerEvaluationLogMessage:
|
261
358
|
Description: 'Checks that blocks are used for interpolated strings passed to `Rails.logger.debug`.'
|
@@ -351,12 +448,20 @@ Rails/FindEach:
|
|
351
448
|
VersionChanged: '2.9'
|
352
449
|
Include:
|
353
450
|
- app/models/**/*.rb
|
354
|
-
|
451
|
+
AllowedMethods:
|
355
452
|
# Methods that don't work well with `find_each`.
|
356
453
|
- order
|
357
454
|
- limit
|
358
455
|
- select
|
359
456
|
- lock
|
457
|
+
AllowedPatterns: []
|
458
|
+
|
459
|
+
Rails/FreezeTime:
|
460
|
+
Description: 'Prefer `freeze_time` over `travel_to` with an argument of the current time.'
|
461
|
+
StyleGuide: 'https://rails.rubystyle.guide/#freeze-time'
|
462
|
+
Enabled: false # dangerous because freeze_time calls travel_to with Time.now but the cop also indicates usages of Time.current or other timezone-dependent times which are not the same as Time.now
|
463
|
+
VersionAdded: '2.16'
|
464
|
+
SafeAutoCorrect: false
|
360
465
|
|
361
466
|
Rails/HasAndBelongsToMany:
|
362
467
|
Description: 'Prefer has_many :through to has_and_belongs_to_many.'
|
@@ -399,6 +504,15 @@ Rails/HttpStatus:
|
|
399
504
|
- numeric
|
400
505
|
- symbolic
|
401
506
|
|
507
|
+
Rails/I18nLazyLookup:
|
508
|
+
Description: 'Checks for places where I18n "lazy" lookup can be used.'
|
509
|
+
StyleGuide: 'https://rails.rubystyle.guide/#lazy-lookup'
|
510
|
+
Reference: 'https://guides.rubyonrails.org/i18n.html#lazy-lookup'
|
511
|
+
Enabled: true
|
512
|
+
VersionAdded: '2.14'
|
513
|
+
Include:
|
514
|
+
- 'controllers/**/*'
|
515
|
+
|
402
516
|
Rails/I18nLocaleAssignment:
|
403
517
|
Description: 'Prefer the usage of `I18n.with_locale` instead of manually updating `I18n.locale` value.'
|
404
518
|
Enabled: false
|
@@ -407,6 +521,19 @@ Rails/I18nLocaleAssignment:
|
|
407
521
|
- spec/**/*.rb
|
408
522
|
- test/**/*.rb
|
409
523
|
|
524
|
+
Rails/I18nLocaleTexts:
|
525
|
+
Description: 'Enforces use of I18n and locale files instead of locale specific strings.'
|
526
|
+
StyleGuide: 'https://rails.rubystyle.guide/#locale-texts'
|
527
|
+
Enabled: true
|
528
|
+
VersionAdded: '2.14'
|
529
|
+
|
530
|
+
Rails/IgnoredColumnsAssignment:
|
531
|
+
Description: 'Looks for assignments of `ignored_columns` that override previous assignments.'
|
532
|
+
StyleGuide: 'https://rails.rubystyle.guide/#append-ignored-columns'
|
533
|
+
Enabled: false # we don't really use ignored_columns
|
534
|
+
SafeAutoCorrect: false
|
535
|
+
VersionAdded: '2.17'
|
536
|
+
|
410
537
|
Rails/IgnoredSkipActionFilterOption:
|
411
538
|
Description: 'Checks that `if` and `only` (or `except`) are not used together as options of `skip_*` action filter.'
|
412
539
|
Reference: 'https://api.rubyonrails.org/classes/AbstractController/Callbacks/ClassMethods.html#method-i-_normalize_callback_options'
|
@@ -414,6 +541,7 @@ Rails/IgnoredSkipActionFilterOption:
|
|
414
541
|
VersionAdded: '0.63'
|
415
542
|
Include:
|
416
543
|
- app/controllers/**/*.rb
|
544
|
+
- app/mailers/**/*.rb
|
417
545
|
|
418
546
|
Rails/IndexBy:
|
419
547
|
Description: 'Prefer `index_by` over `each_with_object`, `to_h`, or `map`.'
|
@@ -437,17 +565,19 @@ Rails/InverseOf:
|
|
437
565
|
Description: 'Checks for associations where the inverse cannot be determined automatically.'
|
438
566
|
Enabled: true
|
439
567
|
VersionAdded: '0.52'
|
568
|
+
IgnoreScopes: false
|
440
569
|
Include:
|
441
570
|
- app/models/**/*.rb
|
442
571
|
|
443
572
|
Rails/LexicallyScopedActionFilter:
|
444
|
-
Description: "Checks that methods specified in the filter's `only` or `except` options are explicitly defined in the
|
573
|
+
Description: "Checks that methods specified in the filter's `only` or `except` options are explicitly defined in the class."
|
445
574
|
StyleGuide: 'https://rails.rubystyle.guide#lexically-scoped-action-filter'
|
446
575
|
Enabled: true
|
447
576
|
Safe: false
|
448
577
|
VersionAdded: '0.52'
|
449
578
|
Include:
|
450
579
|
- app/controllers/**/*.rb
|
580
|
+
- app/mailers/**/*.rb
|
451
581
|
|
452
582
|
Rails/LinkToBlank:
|
453
583
|
Description: 'Checks that `link_to` with a `target: "_blank"` have a `rel: "noopener"` option passed to them.'
|
@@ -478,6 +608,13 @@ Rails/MatchRoute:
|
|
478
608
|
- config/routes.rb
|
479
609
|
- config/routes/**/*.rb
|
480
610
|
|
611
|
+
Rails/MigrationClassName:
|
612
|
+
Description: 'The class name of the migration should match its file name.'
|
613
|
+
Enabled: true
|
614
|
+
VersionAdded: '2.14'
|
615
|
+
Include:
|
616
|
+
- db/migrate/*.rb
|
617
|
+
|
481
618
|
Rails/NegateInclude:
|
482
619
|
Description: 'Prefer `collection.exclude?(obj)` over `!collection.include?(obj)`.'
|
483
620
|
StyleGuide: 'https://rails.rubystyle.guide#exclude'
|
@@ -504,6 +641,7 @@ Rails/OrderById:
|
|
504
641
|
Rails/Output:
|
505
642
|
Description: 'Checks for calls to puts, print, etc.'
|
506
643
|
Enabled: false
|
644
|
+
SafeAutoCorrect: false
|
507
645
|
VersionAdded: '0.15'
|
508
646
|
VersionChanged: '0.19'
|
509
647
|
Include:
|
@@ -607,11 +745,25 @@ Rails/RedundantForeignKey:
|
|
607
745
|
Enabled: true
|
608
746
|
VersionAdded: '2.6'
|
609
747
|
|
748
|
+
Rails/RedundantPresenceValidationOnBelongsTo:
|
749
|
+
Description: 'Checks for redundant presence validation on belongs_to association.'
|
750
|
+
Enabled: true
|
751
|
+
SafeAutoCorrect: false
|
752
|
+
VersionAdded: '2.13'
|
753
|
+
|
610
754
|
Rails/RedundantReceiverInWithOptions:
|
611
755
|
Description: 'Checks for redundant receiver in `with_options`.'
|
612
756
|
Enabled: true
|
613
757
|
VersionAdded: '0.52'
|
614
758
|
|
759
|
+
Rails/RedundantTravelBack:
|
760
|
+
Description: Checks for redundant `travel_back` calls.
|
761
|
+
Enabled: true
|
762
|
+
VersionAdded: '2.12'
|
763
|
+
Include:
|
764
|
+
- spec/**/*.rb
|
765
|
+
- test/**/*.rb
|
766
|
+
|
615
767
|
Rails/ReflectionClassName:
|
616
768
|
Description: 'Use a string for `class_name` option value in the definition of a reflection.'
|
617
769
|
Enabled: true
|
@@ -633,9 +785,9 @@ Rails/RefuteMethods:
|
|
633
785
|
Rails/RelativeDateConstant:
|
634
786
|
Description: 'Do not assign relative date to constants.'
|
635
787
|
Enabled: true
|
788
|
+
SafeAutoCorrect: false
|
636
789
|
VersionAdded: '0.48'
|
637
|
-
VersionChanged: '
|
638
|
-
AutoCorrect: false
|
790
|
+
VersionChanged: '2.13'
|
639
791
|
|
640
792
|
Rails/RenderInline:
|
641
793
|
Description: 'Prefer using a template over inline rendering.'
|
@@ -672,15 +824,33 @@ Rails/ReversibleMigration:
|
|
672
824
|
Reference: 'https://api.rubyonrails.org/classes/ActiveRecord/Migration/CommandRecorder.html'
|
673
825
|
Enabled: true
|
674
826
|
VersionAdded: '0.47'
|
827
|
+
VersionChanged: '2.13'
|
675
828
|
Include:
|
676
|
-
- db
|
829
|
+
- db/**/*.rb
|
677
830
|
|
678
831
|
Rails/ReversibleMigrationMethodDefinition:
|
679
832
|
Description: 'Checks whether the migration implements either a `change` method or both an `up` and a `down` method.'
|
680
|
-
Enabled: false
|
833
|
+
Enabled: false
|
681
834
|
VersionAdded: '2.10'
|
835
|
+
VersionChanged: '2.13'
|
682
836
|
Include:
|
683
|
-
- db
|
837
|
+
- db/**/*.rb
|
838
|
+
|
839
|
+
Rails/RootJoinChain:
|
840
|
+
Description: 'Use a single `#join` instead of chaining on `Rails.root` or `Rails.public_path`.'
|
841
|
+
Enabled: true
|
842
|
+
VersionAdded: '2.13'
|
843
|
+
|
844
|
+
Rails/RootPathnameMethods:
|
845
|
+
Description: 'Use `Rails.root` IO methods instead of passing it to `File`.'
|
846
|
+
Enabled: true
|
847
|
+
SafeAutoCorrect: false
|
848
|
+
VersionAdded: '2.16'
|
849
|
+
|
850
|
+
Rails/RootPublicPath:
|
851
|
+
Description: "Favor `Rails.public_path` over `Rails.root` with `'public'`."
|
852
|
+
Enabled: false
|
853
|
+
VersionAdded: '2.15'
|
684
854
|
|
685
855
|
Rails/SafeNavigation:
|
686
856
|
Description: "Use Ruby's safe navigation operator (`&.`) instead of `try!`."
|
@@ -714,10 +884,18 @@ Rails/SaveBang:
|
|
714
884
|
AllowedReceivers: []
|
715
885
|
SafeAutoCorrect: false
|
716
886
|
|
887
|
+
Rails/SchemaComment:
|
888
|
+
Description: >-
|
889
|
+
Enforces the use of the `comment` option when adding a new table or column
|
890
|
+
to the database during a migration.
|
891
|
+
Enabled: false
|
892
|
+
VersionAdded: '2.13'
|
893
|
+
|
717
894
|
Rails/ScopeArgs:
|
718
895
|
Description: 'Checks the arguments of ActiveRecord scopes.'
|
719
896
|
Enabled: true
|
720
897
|
VersionAdded: '0.19'
|
898
|
+
VersionChanged: '2.12'
|
721
899
|
Include:
|
722
900
|
- app/models/**/*.rb
|
723
901
|
|
@@ -767,17 +945,32 @@ Rails/SquishedSQLHeredocs:
|
|
767
945
|
VersionAdded: '2.8'
|
768
946
|
VersionChanged: '2.9'
|
769
947
|
# Some SQL syntax (e.g. PostgreSQL comments and functions) requires newlines
|
770
|
-
# to be preserved in order to work, thus
|
948
|
+
# to be preserved in order to work, thus autocorrection is not safe.
|
771
949
|
SafeAutoCorrect: false
|
772
950
|
|
951
|
+
Rails/StripHeredoc:
|
952
|
+
Description: 'Enforces the use of squiggly heredoc over `strip_heredoc`.'
|
953
|
+
StyleGuide: 'https://rails.rubystyle.guide/#prefer-squiggly-heredoc'
|
954
|
+
Enabled: true
|
955
|
+
VersionAdded: '2.15'
|
956
|
+
|
957
|
+
Rails/TableNameAssignment:
|
958
|
+
Description: >-
|
959
|
+
Do not use `self.table_name =`. Use Inflections or `table_name_prefix` instead.
|
960
|
+
StyleGuide: 'https://rails.rubystyle.guide/#keep-ar-defaults'
|
961
|
+
Enabled: false
|
962
|
+
VersionAdded: '2.14'
|
963
|
+
Include:
|
964
|
+
- app/models/**/*.rb
|
965
|
+
|
773
966
|
Rails/TimeZone:
|
774
967
|
Description: 'Checks the correct usage of time zone aware methods.'
|
775
968
|
StyleGuide: 'https://rails.rubystyle.guide#time'
|
776
969
|
Reference: 'http://danilenko.org/2012/7/6/rails_timezones'
|
777
970
|
Enabled: false
|
778
|
-
|
971
|
+
SafeAutoCorrect: false
|
779
972
|
VersionAdded: '0.30'
|
780
|
-
VersionChanged: '2.
|
973
|
+
VersionChanged: '2.13'
|
781
974
|
# The value `strict` means that `Time` should be used with `zone`.
|
782
975
|
# The value `flexible` allows usage of `in_time_zone` instead of `zone`.
|
783
976
|
EnforcedStyle: flexible
|
@@ -796,6 +989,33 @@ Rails/TimeZoneAssignment:
|
|
796
989
|
- spec/**/*.rb
|
797
990
|
- test/**/*.rb
|
798
991
|
|
992
|
+
Rails/ToFormattedS:
|
993
|
+
Description: 'Checks for consistent uses of `to_fs` or `to_formatted_s`.'
|
994
|
+
StyleGuide: 'https://rails.rubystyle.guide/#prefer-to-fs'
|
995
|
+
Enabled: true
|
996
|
+
EnforcedStyle: to_formatted_s
|
997
|
+
SupportedStyles:
|
998
|
+
- to_fs
|
999
|
+
- to_formatted_s
|
1000
|
+
VersionAdded: '2.15'
|
1001
|
+
|
1002
|
+
Rails/ToSWithArgument:
|
1003
|
+
Description: 'Identifies passing any argument to `#to_s`.'
|
1004
|
+
Enabled: false
|
1005
|
+
Safe: false
|
1006
|
+
VersionAdded: '2.16'
|
1007
|
+
|
1008
|
+
Rails/TopLevelHashWithIndifferentAccess:
|
1009
|
+
Description: 'Identifies top-level `HashWithIndifferentAccess`.'
|
1010
|
+
Reference: 'https://guides.rubyonrails.org/upgrading_ruby_on_rails.html#top-level-hashwithindifferentaccess-is-soft-deprecated'
|
1011
|
+
Enabled: true
|
1012
|
+
VersionAdded: '2.16'
|
1013
|
+
|
1014
|
+
Rails/TransactionExitStatement:
|
1015
|
+
Description: 'Avoid the usage of `return`, `break` and `throw` in transaction blocks.'
|
1016
|
+
Enabled: true # Get a head start on deprecations: https://blog.saeloun.com/2020/04/06/rails-disallow-return-break-and-throw-to-exit-transaction.html
|
1017
|
+
VersionAdded: '2.14'
|
1018
|
+
|
799
1019
|
Rails/UniqBeforePluck:
|
800
1020
|
Description: 'Prefer the use of uniq or distinct before pluck.'
|
801
1021
|
Enabled: true
|
@@ -806,7 +1026,6 @@ Rails/UniqBeforePluck:
|
|
806
1026
|
- conservative
|
807
1027
|
- aggressive
|
808
1028
|
SafeAutoCorrect: false
|
809
|
-
AutoCorrect: false
|
810
1029
|
|
811
1030
|
Rails/UniqueValidationWithoutIndex:
|
812
1031
|
Description: 'Uniqueness validation should be with a unique index.'
|
@@ -856,12 +1075,29 @@ Rails/WhereExists:
|
|
856
1075
|
VersionAdded: '2.7'
|
857
1076
|
VersionChanged: '2.10'
|
858
1077
|
|
1078
|
+
Rails/WhereMissing:
|
1079
|
+
Description: 'Use `where.missing(...)` to find missing relationship records.'
|
1080
|
+
StyleGuide: 'https://rails.rubystyle.guide/#finding-missing-relationship-records'
|
1081
|
+
Enabled: true
|
1082
|
+
VersionAdded: '2.16'
|
1083
|
+
|
859
1084
|
Rails/WhereNot:
|
860
1085
|
Description: 'Use `where.not(...)` instead of manually constructing negated SQL in `where`.'
|
861
1086
|
StyleGuide: 'https://rails.rubystyle.guide/#hash-conditions'
|
862
1087
|
Enabled: true
|
863
1088
|
VersionAdded: '2.8'
|
864
1089
|
|
1090
|
+
Rails/WhereNotWithMultipleConditions:
|
1091
|
+
Description: 'Do not use `where.not(...)` with multiple conditions.'
|
1092
|
+
Enabled: true
|
1093
|
+
VersionAdded: '2.17'
|
1094
|
+
|
865
1095
|
# Accept `redirect_to(...) and return` and similar cases.
|
866
1096
|
Style/AndOr:
|
867
1097
|
EnforcedStyle: conditionals
|
1098
|
+
|
1099
|
+
Style/SymbolProc:
|
1100
|
+
AllowedMethods:
|
1101
|
+
- define_method
|
1102
|
+
- mail
|
1103
|
+
- respond_to
|