cookstyle 5.23.0 → 6.0.19

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/config/cookstyle.yml +86 -4
  3. data/config/disable_all.yml +58 -52
  4. data/config/upstream.yml +377 -336
  5. data/lib/cookstyle.rb +0 -1
  6. data/lib/cookstyle/version.rb +2 -2
  7. data/lib/rubocop/chef/cookbook_helpers.rb +3 -3
  8. data/lib/rubocop/cop/chef/correctness/chef_application_fatal.rb +58 -0
  9. data/lib/rubocop/cop/chef/correctness/incorrect_library_injection.rb +11 -5
  10. data/lib/rubocop/cop/chef/correctness/powershell_delete_file.rb +53 -0
  11. data/lib/rubocop/cop/chef/deprecation/chef_handler_supports.rb +3 -3
  12. data/lib/rubocop/cop/chef/deprecation/chef_rest.rb +2 -2
  13. data/lib/rubocop/cop/chef/deprecation/chef_rewind.rb +4 -4
  14. data/lib/rubocop/cop/chef/deprecation/chef_windows_platform_helper.rb +56 -0
  15. data/lib/rubocop/cop/chef/deprecation/cheffile.rb +1 -1
  16. data/lib/rubocop/cop/chef/deprecation/chefspec_coverage_report.rb +1 -1
  17. data/lib/rubocop/cop/chef/deprecation/chefspec_legacy_runner.rb +1 -1
  18. data/lib/rubocop/cop/chef/deprecation/chocolatey_package_uninstall_action.rb +1 -1
  19. data/lib/rubocop/cop/chef/deprecation/depends_compat_resource.rb +1 -1
  20. data/lib/rubocop/cop/chef/deprecation/depends_partial_search.rb +1 -5
  21. data/lib/rubocop/cop/chef/deprecation/depends_poise.rb +1 -1
  22. data/lib/rubocop/cop/chef/deprecation/deprecated_chefspec_platform.rb +1 -1
  23. data/lib/rubocop/cop/chef/deprecation/deprecated_mixins.rb +3 -3
  24. data/lib/rubocop/cop/chef/deprecation/deprecated_platform_methods.rb +1 -1
  25. data/lib/rubocop/cop/chef/deprecation/deprecated_windows_version_check.rb +40 -0
  26. data/lib/rubocop/cop/chef/deprecation/deprecated_yum_repository_properties.rb +1 -4
  27. data/lib/rubocop/cop/chef/deprecation/easy_install.rb +1 -1
  28. data/lib/rubocop/cop/chef/deprecation/eol_audit_mode.rb +1 -1
  29. data/lib/rubocop/cop/chef/deprecation/epic_fail.rb +1 -1
  30. data/lib/rubocop/cop/chef/deprecation/erl_call.rb +1 -1
  31. data/lib/rubocop/cop/chef/deprecation/inherits_compat_resource.rb +1 -1
  32. data/lib/rubocop/cop/chef/deprecation/launchd_deprecated_hash_property.rb +1 -4
  33. data/lib/rubocop/cop/chef/deprecation/legacy_notify_syntax.rb +1 -1
  34. data/lib/rubocop/cop/chef/deprecation/legacy_yum_cookbook_recipes.rb +1 -1
  35. data/lib/rubocop/cop/chef/deprecation/locale_lc_all_property.rb +1 -1
  36. data/lib/rubocop/cop/chef/deprecation/log_resource_notifications.rb +60 -0
  37. data/lib/rubocop/cop/chef/deprecation/name_property_and_default.rb +1 -1
  38. data/lib/rubocop/cop/chef/deprecation/node_deep_fetch.rb +2 -2
  39. data/lib/rubocop/cop/chef/deprecation/node_methods_not_attributes.rb +1 -1
  40. data/lib/rubocop/cop/chef/deprecation/node_set.rb +1 -1
  41. data/lib/rubocop/cop/chef/deprecation/node_set_unless.rb +1 -1
  42. data/lib/rubocop/cop/chef/deprecation/node_set_without_level.rb +2 -2
  43. data/lib/rubocop/cop/chef/deprecation/partial_search_class_usage.rb +1 -1
  44. data/lib/rubocop/cop/chef/deprecation/partial_search_helper_usage.rb +1 -1
  45. data/lib/rubocop/cop/chef/deprecation/poise_archive.rb +2 -2
  46. data/lib/rubocop/cop/chef/deprecation/require_recipe.rb +1 -1
  47. data/lib/rubocop/cop/chef/deprecation/resource_overrides_provides_method.rb +1 -1
  48. data/lib/rubocop/cop/chef/deprecation/resource_uses_dsl_name_method.rb +1 -1
  49. data/lib/rubocop/cop/chef/deprecation/resource_uses_provider_base_method.rb +1 -1
  50. data/lib/rubocop/cop/chef/deprecation/resource_uses_updated_method.rb +1 -1
  51. data/lib/rubocop/cop/chef/deprecation/resource_without_name_or_provides.rb +81 -0
  52. data/lib/rubocop/cop/chef/deprecation/ruby_block_create_action.rb +1 -1
  53. data/lib/rubocop/cop/chef/deprecation/run_command_helper.rb +3 -3
  54. data/lib/rubocop/cop/chef/deprecation/search_uses_positional_parameters.rb +1 -1
  55. data/lib/rubocop/cop/chef/deprecation/use_inline_resources.rb +1 -1
  56. data/lib/rubocop/cop/chef/deprecation/user_supports_property.rb +1 -1
  57. data/lib/rubocop/cop/chef/deprecation/verify_property_file_expansion.rb +1 -4
  58. data/lib/rubocop/cop/chef/deprecation/windows_feature_servermanagercmd.rb +1 -1
  59. data/lib/rubocop/cop/chef/deprecation/windows_task_change_action.rb +1 -4
  60. data/lib/rubocop/cop/chef/deprecation/xml_ruby_recipe.rb +1 -1
  61. data/lib/rubocop/cop/chef/deprecation/yum_dnf_compat_recipe.rb +1 -1
  62. data/lib/rubocop/cop/chef/modernize/databag_helpers.rb +58 -0
  63. data/lib/rubocop/cop/chef/modernize/powershell_guard_interpreter.rb +17 -8
  64. data/lib/rubocop/cop/chef/modernize/powershell_install_windowsfeature.rb +3 -3
  65. data/lib/rubocop/cop/chef/modernize/provides_initializer.rb +69 -0
  66. data/lib/rubocop/cop/chef/modernize/respond_to_provides.rb +5 -15
  67. data/lib/rubocop/cop/chef/modernize/use_multipackage_installs.rb +103 -0
  68. data/lib/rubocop/cop/chef/modernize/whyrun_supported_true.rb +2 -9
  69. data/lib/rubocop/cop/chef/modernize/windows_registry_uac.rb +2 -2
  70. data/lib/rubocop/cop/chef/redundant/apt_repository_distribution_default.rb +0 -1
  71. data/lib/rubocop/cop/chef/redundant/sensitive_property_in_resource.rb +3 -3
  72. data/lib/rubocop/monkey_patches/comment_config.rb +1 -1
  73. data/lib/rubocop/monkey_patches/config.rb +1 -1
  74. metadata +13 -5
  75. data/lib/rubocop/monkey_patches/json_formatter.rb +0 -20
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b643382e9541a9d542bda66cde1aae0922ba3bb43318e21bc5f8abe3ebb37ce8
4
- data.tar.gz: 4b7939a38dfa5d0065560a834c770bdde57ed58e5bfc86b4adeaaea622470ae7
3
+ metadata.gz: 8630cadf214ce92de0f6c69de2951015e6930943b7fe4e987a0ac5ab0191d73e
4
+ data.tar.gz: 4aa39f4879f6eb93bf2ff9cd7922e471eb366d62992474ced13c7f9ac27e0108
5
5
  SHA512:
6
- metadata.gz: 359c2d5b2b9112ce9d16e5ca8bbc76a4dd76db8076a9d5467fcdc9f69905997a67bbe8a6b869dc3099aab72ecdb6b2ca1cffacd1b2b378dbe9416430ecf10b8f
7
- data.tar.gz: 971d8d6472462ce60641d5c097670d212e071dd99ef5e0e6f8082ce5ab4592860ef71423eb94a853a8a3181ebc27d6c8081bd97435ec6a19638482f51b52fcf7
6
+ metadata.gz: 7a5aedf9341dd80db77974b72c8e4a07f1aeb2a583764f9d7232ee57860c1e5e3433eb0dcecaadaf45abfc2256d9ca64f220a74747feeb90458931c7a6ca0846
7
+ data.tar.gz: 292a4016ac850e050005a7b2f686d8d6c41201372ccb747457cd74eab46ccbbc60f4eac7ed70576829578509a996e58e987f7b4e1c6b9bd49aebac314c60ed4f
data/config/cookstyle.yml CHANGED
@@ -324,6 +324,23 @@ ChefCorrectness/DnfPackageAllowDowngrades:
324
324
  - '**/metadata.rb'
325
325
  - '**/Berksfile'
326
326
 
327
+ ChefCorrectness/ChefApplicationFatal:
328
+ Description: Use raise to force Chef Infra Client to fail instead of using Chef::Application.fatal
329
+ Enabled: true
330
+ VersionAdded: '6.0.0'
331
+ Exclude:
332
+ - '**/metadata.rb'
333
+ - '**/Berksfile'
334
+
335
+ ChefCorrectness/PowershellScriptDeleteFile:
336
+ Description: Use the `file` or `directory` resources built into Chef Infra Client with the :delete action to remove files/directories instead of using Remove-Item in a powershell_script resource
337
+ Enabled: true
338
+ VersionAdded: '6.0.0'
339
+ Exclude:
340
+ - '**/attributes/*.rb'
341
+ - '**/metadata.rb'
342
+ - '**/Berksfile'
343
+
327
344
  ###############################
328
345
  # ChefSharing: Issues that prevent sharing code with other teams or with the Chef community in general
329
346
  ###############################
@@ -726,6 +743,37 @@ ChefDeprecations/WindowsFeatureServermanagercmd:
726
743
  - '**/attributes/*.rb'
727
744
  - '**/Berksfile'
728
745
 
746
+ ChefDeprecations/DeprecatedWindowsVersionCheck:
747
+ Description: Don't use the deprecated older_than_win_2012_or_8? helper. Windows versions before 2012 and 8 are now end of life and this helper will always return false.
748
+ Enabled: true
749
+ VersionAdded: '6.0.0'
750
+ Exclude:
751
+ - '**/metadata.rb'
752
+ - '**/Berksfile'
753
+
754
+ ChefDeprecations/ChefWindowsPlatformHelper:
755
+ Description: Use `platform?('windows')` instead of the legacy `Chef::Platform.windows?` helper.
756
+ Enabled: true
757
+ VersionAdded: '6.0.0'
758
+ Exclude:
759
+ - '**/metadata.rb'
760
+ - '**/Berksfile'
761
+
762
+ ChefDeprecations/LogResourceNotifications:
763
+ Description: In Chef Infra Client 16 the log resource no longer notifies when logging so notifications should not be triggered from log resources. Use the notify_group resource instead to aggregate notifications.
764
+ Enabled: true
765
+ VersionAdded: '6.0.0'
766
+ Exclude:
767
+ - '**/metadata.rb'
768
+ - '**/Berksfile'
769
+
770
+ ChefDeprecations/ResourceWithoutNameOrProvides:
771
+ Description: In Chef Infra Client 16 and later legacy HWRP resources must use either `resource_name` or `provides` to define the resource name.
772
+ Enabled: true
773
+ VersionAdded: '6.0.0'
774
+ Include:
775
+ - '**/libraries/*.rb'
776
+
729
777
  ###############################
730
778
  # ChefModernize: Cleaning up legacy code and using new built-in resources
731
779
  ###############################
@@ -1150,6 +1198,32 @@ ChefModernize/WindowsRegistryUAC:
1150
1198
  - '**/attributes/*.rb'
1151
1199
  - '**/Berksfile'
1152
1200
 
1201
+ ChefModernize/UseMultipackageInstalls:
1202
+ Description: Pass an array of packages to package resources instead of interating over an array of packages when using multi-package capable package subystem such as apt, yum, chocolatey, dnf, or zypper. Multipackage installs are faster and simplify logs.
1203
+ Enabled: true
1204
+ VersionAdded: '6.0.0'
1205
+ Exclude:
1206
+ - '**/metadata.rb'
1207
+ - '**/attributes/*.rb'
1208
+ - '**/Berksfile'
1209
+
1210
+ ChefModernize/ProvidesFromInitialize:
1211
+ Description: Provides should be set using the `provides` resource DSL method instead of instead of setting @provides in the initialize method.
1212
+ Enabled: true
1213
+ VersionAdded: '6.0.0'
1214
+ Include:
1215
+ - '**/resources/*.rb'
1216
+ - '**/providers/*.rb'
1217
+ - '**/libraries/*.rb'
1218
+
1219
+ ChefModernize/DatabagHelpers:
1220
+ Description: Use the `data_bag_item` helper instead of `Chef::DataBagItem.load` or `Chef::EncryptedDataBagItem.load`.
1221
+ Enabled: true
1222
+ VersionAdded: '6.0.0'
1223
+ Exclude:
1224
+ - '**/metadata.rb'
1225
+ - '**/Berksfile'
1226
+
1153
1227
  ###############################
1154
1228
  # ChefRedundantCode: Cleanup unnecessary code in your cookbooks regardless of Chef Infra Client release
1155
1229
  ###############################
@@ -1784,7 +1858,7 @@ Naming/FileName:
1784
1858
  Enabled: false
1785
1859
 
1786
1860
  # disable all the length cops as they're not appropriate for cookbooks
1787
- Metrics/LineLength:
1861
+ Layout/LineLength:
1788
1862
  Enabled: false
1789
1863
  Metrics/MethodLength:
1790
1864
  Enabled: false
@@ -1805,8 +1879,8 @@ Metrics/PerceivedComplexity:
1805
1879
 
1806
1880
  # This updates how we send helpers into the Chef recipe/resource classes and makes WAY more sense
1807
1881
  # Chef::Recipe.send(:include, ::Apt::Helpers) -> Chef::Recipe.include ::Apt::Helpers
1808
- # Lint/SendWithMixinArgument:
1809
- # Enabled: true
1882
+ Lint/SendWithMixinArgument:
1883
+ Enabled: true
1810
1884
 
1811
1885
  #### END COPS FOR THE NEXT MAJOR RELEASE
1812
1886
 
@@ -2021,4 +2095,12 @@ Bundler/OrderedGems:
2021
2095
  # extend self and module_function are not the same. module_function makes all the methods private
2022
2096
  # and this rule will break any library that worked with extend self.
2023
2097
  Style/ModuleFunction:
2024
- Enabled: false
2098
+ Enabled: false
2099
+
2100
+ # Avoid using extra then statements in a multiline case
2101
+ Style/MultilineWhenThen:
2102
+ Enabled: true
2103
+
2104
+ # .each_key is a lot more clear that .keys.each
2105
+ Style/HashEachMethods:
2106
+ Enabled: true
@@ -19,13 +19,11 @@ Gemspec/RubyVersionGlobalsUsage:
19
19
  Enabled: false
20
20
  Layout/AccessModifierIndentation:
21
21
  Enabled: false
22
- Layout/AlignArguments:
22
+ Layout/ArgumentAlignment:
23
23
  Enabled: false
24
- Layout/AlignArray:
24
+ Layout/ArrayAlignment:
25
25
  Enabled: false
26
- Layout/AlignHash:
27
- Enabled: false
28
- Layout/AlignParameters:
26
+ Layout/AssignmentIndentation:
29
27
  Enabled: false
30
28
  Layout/BlockAlignment:
31
29
  Enabled: false
@@ -81,38 +79,40 @@ Layout/EndOfLine:
81
79
  Enabled: false
82
80
  Layout/ExtraSpacing:
83
81
  Enabled: false
82
+ Layout/FirstArgumentIndentation:
83
+ Enabled: false
84
+ Layout/FirstArrayElementIndentation:
85
+ Enabled: false
84
86
  Layout/FirstArrayElementLineBreak:
85
87
  Enabled: false
88
+ Layout/FirstHashElementIndentation:
89
+ Enabled: false
86
90
  Layout/FirstHashElementLineBreak:
87
91
  Enabled: false
88
92
  Layout/FirstMethodArgumentLineBreak:
89
93
  Enabled: false
90
94
  Layout/FirstMethodParameterLineBreak:
91
95
  Enabled: false
96
+ Layout/FirstParameterIndentation:
97
+ Enabled: false
98
+ Layout/HashAlignment:
99
+ Enabled: false
92
100
  Layout/HeredocArgumentClosingParenthesis:
93
101
  Enabled: false
94
- Layout/IndentAssignment:
102
+ Layout/HeredocIndentation:
95
103
  Enabled: false
96
104
  Layout/IndentationConsistency:
97
105
  Enabled: false
98
106
  Layout/IndentationWidth:
99
107
  Enabled: false
100
- Layout/IndentFirstArgument:
101
- Enabled: false
102
- Layout/IndentFirstArrayElement:
103
- Enabled: false
104
- Layout/IndentFirstHashElement:
105
- Enabled: false
106
- Layout/IndentFirstParameter:
107
- Enabled: false
108
- Layout/IndentHeredoc:
109
- Enabled: false
110
108
  Layout/InitialIndentation:
111
109
  Enabled: false
112
- Layout/LeadingBlankLines:
113
- Enabled: false
114
110
  Layout/LeadingCommentSpace:
115
111
  Enabled: false
112
+ Layout/LeadingEmptyLines:
113
+ Enabled: false
114
+ Layout/LineLength:
115
+ Enabled: false
116
116
  Layout/MultilineArrayBraceLayout:
117
117
  Enabled: false
118
118
  Layout/MultilineArrayLineBreaks:
@@ -135,6 +135,8 @@ Layout/MultilineMethodDefinitionBraceLayout:
135
135
  Enabled: false
136
136
  Layout/MultilineOperationIndentation:
137
137
  Enabled: false
138
+ Layout/ParameterAlignment:
139
+ Enabled: false
138
140
  Layout/RescueEnsureAlignment:
139
141
  Enabled: false
140
142
  Layout/SpaceAfterColon:
@@ -187,7 +189,7 @@ Layout/SpaceInsideStringInterpolation:
187
189
  Enabled: false
188
190
  Layout/Tab:
189
191
  Enabled: false
190
- Layout/TrailingBlankLines:
192
+ Layout/TrailingEmptyLines:
191
193
  Enabled: false
192
194
  Layout/TrailingWhitespace:
193
195
  Enabled: false
@@ -213,9 +215,9 @@ Lint/DisjunctiveAssignmentInConstructor:
213
215
  Enabled: false
214
216
  Lint/DuplicateCaseCondition:
215
217
  Enabled: false
216
- Lint/DuplicateMethods:
218
+ Lint/DuplicateHashKey:
217
219
  Enabled: false
218
- Lint/DuplicatedKey:
220
+ Lint/DuplicateMethods:
219
221
  Enabled: false
220
222
  Lint/EachWithObjectArgument:
221
223
  Enabled: false
@@ -241,8 +243,6 @@ Lint/FloatOutOfRange:
241
243
  Enabled: false
242
244
  Lint/FormatParameterMismatch:
243
245
  Enabled: false
244
- Lint/HandleExceptions:
245
- Enabled: false
246
246
  Lint/HeredocMethodCallPosition:
247
247
  Enabled: false
248
248
  Lint/ImplicitStringConcatenation:
@@ -261,7 +261,7 @@ Lint/Loop:
261
261
  Enabled: false
262
262
  Lint/MissingCopEnableDirective:
263
263
  Enabled: false
264
- Lint/MultipleCompare:
264
+ Lint/MultipleComparison:
265
265
  Enabled: false
266
266
  Lint/NestedMethodDefinition:
267
267
  Enabled: false
@@ -269,6 +269,8 @@ Lint/NestedPercentLiteral:
269
269
  Enabled: false
270
270
  Lint/NextWithoutAccumulator:
271
271
  Enabled: false
272
+ Lint/NonDeterministicRequireOrder:
273
+ Enabled: false
272
274
  Lint/NonLocalExitFromIterator:
273
275
  Enabled: false
274
276
  Lint/NumberConversion:
@@ -283,6 +285,16 @@ Lint/PercentSymbolArray:
283
285
  Enabled: false
284
286
  Lint/RandOne:
285
287
  Enabled: false
288
+ Lint/RedundantCopDisableDirective:
289
+ Enabled: false
290
+ Lint/RedundantCopEnableDirective:
291
+ Enabled: false
292
+ Lint/RedundantRequireStatement:
293
+ Enabled: false
294
+ Lint/RedundantSplatExpansion:
295
+ Enabled: false
296
+ Lint/RedundantStringCoercion:
297
+ Enabled: false
286
298
  Lint/RedundantWithIndex:
287
299
  Enabled: false
288
300
  Lint/RedundantWithObject:
@@ -313,7 +325,7 @@ Lint/ShadowedException:
313
325
  Enabled: false
314
326
  Lint/ShadowingOuterLocalVariable:
315
327
  Enabled: false
316
- Lint/StringConversionInInterpolation:
328
+ Lint/SuppressedException:
317
329
  Enabled: false
318
330
  Lint/Syntax:
319
331
  Enabled: false
@@ -323,14 +335,6 @@ Lint/UnderscorePrefixedVariableName:
323
335
  Enabled: false
324
336
  Lint/UnifiedInteger:
325
337
  Enabled: false
326
- Lint/UnneededCopDisableDirective:
327
- Enabled: false
328
- Lint/UnneededCopEnableDirective:
329
- Enabled: false
330
- Lint/UnneededRequireStatement:
331
- Enabled: false
332
- Lint/UnneededSplatExpansion:
333
- Enabled: false
334
338
  Lint/UnreachableCode:
335
339
  Enabled: false
336
340
  Lint/UnusedBlockArgument:
@@ -363,8 +367,6 @@ Metrics/BlockNesting:
363
367
  Enabled: false
364
368
  Metrics/ClassLength:
365
369
  Enabled: false
366
- Metrics/LineLength:
367
- Enabled: false
368
370
  Metrics/MethodLength:
369
371
  Enabled: false
370
372
  Metrics/ModuleLength:
@@ -377,6 +379,8 @@ Naming/AccessorMethodName:
377
379
  Enabled: false
378
380
  Naming/AsciiIdentifiers:
379
381
  Enabled: false
382
+ Naming/BlockParameterName:
383
+ Enabled: false
380
384
  Naming/ClassAndModuleCamelCase:
381
385
  Enabled: false
382
386
  Naming/ConstantName:
@@ -391,16 +395,14 @@ Naming/MemoizedInstanceVariableName:
391
395
  Enabled: false
392
396
  Naming/MethodName:
393
397
  Enabled: false
398
+ Naming/MethodParameterName:
399
+ Enabled: false
394
400
  Naming/BinaryOperatorParameterName:
395
401
  Enabled: false
396
402
  Naming/PredicateName:
397
403
  Enabled: false
398
404
  Naming/RescuedExceptionsVariableName:
399
405
  Enabled: false
400
- Naming/UncommunicativeBlockParamName:
401
- Enabled: false
402
- Naming/UncommunicativeMethodParamName:
403
- Enabled: false
404
406
  Naming/VariableName:
405
407
  Enabled: false
406
408
  Naming/VariableNumber:
@@ -427,8 +429,6 @@ Style/BlockComments:
427
429
  Enabled: false
428
430
  Style/BlockDelimiters:
429
431
  Enabled: false
430
- Style/BracesAroundHashParameters:
431
- Enabled: false
432
432
  Style/CaseEquality:
433
433
  Enabled: false
434
434
  Style/CharacterLiteral:
@@ -513,8 +513,14 @@ Style/GlobalVars:
513
513
  Enabled: false
514
514
  Style/GuardClause:
515
515
  Enabled: false
516
+ Style/HashEachMethods:
517
+ Enabled: false
516
518
  Style/HashSyntax:
517
519
  Enabled: false
520
+ Style/HashTransformKeys:
521
+ Enabled: false
522
+ Style/HashTransformValues:
523
+ Enabled: false
518
524
  Style/IdenticalConditionalBranches:
519
525
  Enabled: false
520
526
  Style/IfInsideElse:
@@ -635,18 +641,28 @@ Style/RandomWithOffset:
635
641
  Enabled: false
636
642
  Style/RedundantBegin:
637
643
  Enabled: false
644
+ Style/RedundantCapitalW:
645
+ Enabled: false
646
+ Style/RedundantCondition:
647
+ Enabled: false
638
648
  Style/RedundantConditional:
639
649
  Enabled: false
640
650
  Style/RedundantException:
641
651
  Enabled: false
642
652
  Style/RedundantFreeze:
643
653
  Enabled: false
654
+ Style/RedundantInterpolation:
655
+ Enabled: false
644
656
  Style/RedundantParentheses:
645
657
  Enabled: false
658
+ Style/RedundantPercentQ:
659
+ Enabled: false
646
660
  Style/RedundantReturn:
647
661
  Enabled: false
648
662
  Style/RedundantSelf:
649
663
  Enabled: false
664
+ Style/RedundantSort:
665
+ Enabled: false
650
666
  Style/RedundantSortBy:
651
667
  Enabled: false
652
668
  Style/RegexpLiteral:
@@ -719,16 +735,6 @@ Style/TrivialAccessors:
719
735
  Enabled: false
720
736
  Style/UnlessElse:
721
737
  Enabled: false
722
- Style/UnneededCapitalW:
723
- Enabled: false
724
- Style/UnneededCondition:
725
- Enabled: false
726
- Style/UnneededInterpolation:
727
- Enabled: false
728
- Style/UnneededPercentQ:
729
- Enabled: false
730
- Style/UnneededSort:
731
- Enabled: false
732
738
  Style/UnpackFirst:
733
739
  Enabled: false
734
740
  Style/VariableInterpolation:
@@ -754,4 +760,4 @@ Security/MarshalLoad:
754
760
  Security/Open:
755
761
  Enabled: false
756
762
  Security/YAMLLoad:
757
- Enabled: false
763
+ Enabled: false
data/config/upstream.yml CHANGED
@@ -54,11 +54,13 @@ AllCops:
54
54
  - '**/Puppetfile'
55
55
  - '**/Rakefile'
56
56
  - '**/Snapfile'
57
+ - '**/Steepfile'
57
58
  - '**/Thorfile'
58
59
  - '**/Vagabondfile'
59
60
  - '**/Vagrantfile'
60
61
  Exclude:
61
62
  - 'node_modules/**/*'
63
+ - 'tmp/**/*'
62
64
  - 'vendor/**/*'
63
65
  - '.git/**/*'
64
66
  # Default formatter will be used if no `-f/--format` option is given.
@@ -141,11 +143,12 @@ Bundler/GemComment:
141
143
  Description: 'Add a comment describing each gem.'
142
144
  Enabled: false
143
145
  VersionAdded: '0.59'
146
+ VersionChanged: '0.77'
144
147
  Include:
145
148
  - '**/*.gemfile'
146
149
  - '**/Gemfile'
147
150
  - '**/gems.rb'
148
- Whitelist: []
151
+ IgnoredGems: []
149
152
 
150
153
  Bundler/InsecureProtocolSource:
151
154
  Description: >-
@@ -195,9 +198,10 @@ Gemspec/RequiredRubyVersion:
195
198
  VersionAdded: '0.52'
196
199
  Include:
197
200
  - '**/*.gemspec'
198
- -
201
+
199
202
  Gemspec/RubyVersionGlobalsUsage:
200
203
  Description: Checks usage of RUBY_VERSION in gemspec.
204
+ StyleGuide: '#no-ruby-version-in-the-gemspec'
201
205
  Enabled: true
202
206
  VersionAdded: '0.72'
203
207
  Include:
@@ -218,13 +222,14 @@ Layout/AccessModifierIndentation:
218
222
  # But it can be overridden by setting this parameter
219
223
  IndentationWidth: ~
220
224
 
221
- Layout/AlignArguments:
225
+ Layout/ArgumentAlignment:
222
226
  Description: >-
223
227
  Align the arguments of a method call if they span more
224
228
  than one line.
225
229
  StyleGuide: '#no-double-indent'
226
230
  Enabled: true
227
231
  VersionAdded: '0.68'
232
+ VersionChanged: '0.77'
228
233
  # Alignment of arguments in multi-line method calls.
229
234
  #
230
235
  # The `with_first_argument` style aligns the following lines along the same
@@ -246,117 +251,23 @@ Layout/AlignArguments:
246
251
  # But it can be overridden by setting this parameter
247
252
  IndentationWidth: ~
248
253
 
249
- Layout/AlignArray:
254
+ Layout/ArrayAlignment:
250
255
  Description: >-
251
256
  Align the elements of an array literal if they span more than
252
257
  one line.
253
258
  StyleGuide: '#align-multiline-arrays'
254
259
  Enabled: true
255
260
  VersionAdded: '0.49'
261
+ VersionChanged: '0.77'
256
262
 
257
- Layout/AlignHash:
263
+ Layout/AssignmentIndentation:
258
264
  Description: >-
259
- Align the elements of a hash literal if they span more than
260
- one line.
265
+ Checks the indentation of the first line of the
266
+ right-hand-side of a multi-line assignment.
261
267
  Enabled: true
262
- AllowMultipleStyles: true
263
268
  VersionAdded: '0.49'
264
- # Alignment of entries using hash rocket as separator. Valid values are:
265
- #
266
- # key - left alignment of keys
267
- # 'a' => 2
268
- # 'bb' => 3
269
- # separator - alignment of hash rockets, keys are right aligned
270
- # 'a' => 2
271
- # 'bb' => 3
272
- # table - left alignment of keys, hash rockets, and values
273
- # 'a' => 2
274
- # 'bb' => 3
275
- EnforcedHashRocketStyle: key
276
- SupportedHashRocketStyles:
277
- - key
278
- - separator
279
- - table
280
- # Alignment of entries using colon as separator. Valid values are:
281
- #
282
- # key - left alignment of keys
283
- # a: 0
284
- # bb: 1
285
- # separator - alignment of colons, keys are right aligned
286
- # a: 0
287
- # bb: 1
288
- # table - left alignment of keys and values
289
- # a: 0
290
- # bb: 1
291
- EnforcedColonStyle: key
292
- SupportedColonStyles:
293
- - key
294
- - separator
295
- - table
296
- # Select whether hashes that are the last argument in a method call should be
297
- # inspected? Valid values are:
298
- #
299
- # always_inspect - Inspect both implicit and explicit hashes.
300
- # Registers an offense for:
301
- # function(a: 1,
302
- # b: 2)
303
- # Registers an offense for:
304
- # function({a: 1,
305
- # b: 2})
306
- # always_ignore - Ignore both implicit and explicit hashes.
307
- # Accepts:
308
- # function(a: 1,
309
- # b: 2)
310
- # Accepts:
311
- # function({a: 1,
312
- # b: 2})
313
- # ignore_implicit - Ignore only implicit hashes.
314
- # Accepts:
315
- # function(a: 1,
316
- # b: 2)
317
- # Registers an offense for:
318
- # function({a: 1,
319
- # b: 2})
320
- # ignore_explicit - Ignore only explicit hashes.
321
- # Accepts:
322
- # function({a: 1,
323
- # b: 2})
324
- # Registers an offense for:
325
- # function(a: 1,
326
- # b: 2)
327
- EnforcedLastArgumentHashStyle: always_inspect
328
- SupportedLastArgumentHashStyles:
329
- - always_inspect
330
- - always_ignore
331
- - ignore_implicit
332
- - ignore_explicit
333
-
334
- Layout/AlignParameters:
335
- Description: >-
336
- Align the parameters of a method definition if they span more
337
- than one line.
338
- StyleGuide: '#no-double-indent'
339
- Enabled: true
340
- VersionAdded: '0.49'
341
- VersionChanged: '0.68'
342
- # Alignment of parameters in multi-line method calls.
343
- #
344
- # The `with_first_parameter` style aligns the following lines along the same
345
- # column as the first parameter.
346
- #
347
- # def method_foo(a,
348
- # b)
349
- #
350
- # The `with_fixed_indentation` style aligns the following lines with one
351
- # level of indentation relative to the start of the line with the method call.
352
- #
353
- # def method_foo(a,
354
- # b)
355
- EnforcedStyle: with_first_parameter
356
- SupportedStyles:
357
- - with_first_parameter
358
- - with_fixed_indentation
359
- # By default, the indentation width from Layout/IndentationWidth is used
269
+ VersionChanged: '0.77'
270
+ # By default, the indentation width from `Layout/IndentationWidth` is used
360
271
  # But it can be overridden by setting this parameter
361
272
  IndentationWidth: ~
362
273
 
@@ -624,56 +535,11 @@ Layout/ExtraSpacing:
624
535
  # When true, forces the alignment of `=` in assignments on consecutive lines.
625
536
  ForceEqualSignAlignment: false
626
537
 
627
- Layout/FirstArrayElementLineBreak:
628
- Description: >-
629
- Checks for a line break before the first element in a
630
- multi-line array.
631
- Enabled: false
632
- VersionAdded: '0.49'
633
-
634
- Layout/FirstHashElementLineBreak:
635
- Description: >-
636
- Checks for a line break before the first element in a
637
- multi-line hash.
638
- Enabled: false
639
- VersionAdded: '0.49'
640
-
641
- Layout/FirstMethodArgumentLineBreak:
642
- Description: >-
643
- Checks for a line break before the first argument in a
644
- multi-line method call.
645
- Enabled: false
646
- VersionAdded: '0.49'
647
-
648
- Layout/FirstMethodParameterLineBreak:
649
- Description: >-
650
- Checks for a line break before the first parameter in a
651
- multi-line method parameter definition.
652
- Enabled: false
653
- VersionAdded: '0.49'
654
-
655
- Layout/HeredocArgumentClosingParenthesis:
656
- Description: >-
657
- Checks for the placement of the closing parenthesis in a
658
- method call that passes a HEREDOC string as an argument.
659
- Enabled: false
660
- StyleGuide: '#heredoc-argument-closing-parentheses'
661
- VersionAdded: '0.68'
662
-
663
- Layout/IndentAssignment:
664
- Description: >-
665
- Checks the indentation of the first line of the
666
- right-hand-side of a multi-line assignment.
667
- Enabled: true
668
- VersionAdded: '0.49'
669
- # By default, the indentation width from `Layout/IndentationWidth` is used
670
- # But it can be overridden by setting this parameter
671
- IndentationWidth: ~
672
-
673
- Layout/IndentFirstArgument:
538
+ Layout/FirstArgumentIndentation:
674
539
  Description: 'Checks the indentation of the first argument in a method call.'
675
540
  Enabled: true
676
541
  VersionAdded: '0.68'
542
+ VersionChanged: '0.77'
677
543
  EnforcedStyle: special_for_inner_method_call_in_parentheses
678
544
  SupportedStyles:
679
545
  # The first parameter should always be indented one step more than the
@@ -694,12 +560,13 @@ Layout/IndentFirstArgument:
694
560
  # But it can be overridden by setting this parameter
695
561
  IndentationWidth: ~
696
562
 
697
- Layout/IndentFirstArrayElement:
563
+ Layout/FirstArrayElementIndentation:
698
564
  Description: >-
699
565
  Checks the indentation of the first element in an array
700
566
  literal.
701
567
  Enabled: true
702
568
  VersionAdded: '0.68'
569
+ VersionChanged: '0.77'
703
570
  # The value `special_inside_parentheses` means that array literals with
704
571
  # brackets that have their opening bracket on the same line as a surrounding
705
572
  # opening round parenthesis, shall have their first element indented relative
@@ -720,10 +587,18 @@ Layout/IndentFirstArrayElement:
720
587
  # But it can be overridden by setting this parameter
721
588
  IndentationWidth: ~
722
589
 
723
- Layout/IndentFirstHashElement:
590
+ Layout/FirstArrayElementLineBreak:
591
+ Description: >-
592
+ Checks for a line break before the first element in a
593
+ multi-line array.
594
+ Enabled: false
595
+ VersionAdded: '0.49'
596
+
597
+ Layout/FirstHashElementIndentation:
724
598
  Description: 'Checks the indentation of the first key in a hash literal.'
725
599
  Enabled: true
726
600
  VersionAdded: '0.68'
601
+ VersionChanged: '0.77'
727
602
  # The value `special_inside_parentheses` means that hash literals with braces
728
603
  # that have their opening brace on the same line as a surrounding opening
729
604
  # round parenthesis, shall have their first key indented relative to the
@@ -744,13 +619,34 @@ Layout/IndentFirstHashElement:
744
619
  # But it can be overridden by setting this parameter
745
620
  IndentationWidth: ~
746
621
 
747
- Layout/IndentFirstParameter:
622
+ Layout/FirstHashElementLineBreak:
623
+ Description: >-
624
+ Checks for a line break before the first element in a
625
+ multi-line hash.
626
+ Enabled: false
627
+ VersionAdded: '0.49'
628
+
629
+ Layout/FirstMethodArgumentLineBreak:
630
+ Description: >-
631
+ Checks for a line break before the first argument in a
632
+ multi-line method call.
633
+ Enabled: false
634
+ VersionAdded: '0.49'
635
+
636
+ Layout/FirstMethodParameterLineBreak:
637
+ Description: >-
638
+ Checks for a line break before the first parameter in a
639
+ multi-line method parameter definition.
640
+ Enabled: false
641
+ VersionAdded: '0.49'
642
+
643
+ Layout/FirstParameterIndentation:
748
644
  Description: >-
749
645
  Checks the indentation of the first parameter in a
750
646
  method definition.
751
647
  Enabled: true
752
648
  VersionAdded: '0.49'
753
- VersionChanged: '0.68'
649
+ VersionChanged: '0.77'
754
650
  EnforcedStyle: consistent
755
651
  SupportedStyles:
756
652
  - consistent
@@ -759,12 +655,98 @@ Layout/IndentFirstParameter:
759
655
  # But it can be overridden by setting this parameter
760
656
  IndentationWidth: ~
761
657
 
762
- Layout/IndentHeredoc:
658
+ Layout/HashAlignment:
659
+ Description: >-
660
+ Align the elements of a hash literal if they span more than
661
+ one line.
662
+ Enabled: true
663
+ AllowMultipleStyles: true
664
+ VersionAdded: '0.49'
665
+ VersionChanged: '0.77'
666
+ # Alignment of entries using hash rocket as separator. Valid values are:
667
+ #
668
+ # key - left alignment of keys
669
+ # 'a' => 2
670
+ # 'bb' => 3
671
+ # separator - alignment of hash rockets, keys are right aligned
672
+ # 'a' => 2
673
+ # 'bb' => 3
674
+ # table - left alignment of keys, hash rockets, and values
675
+ # 'a' => 2
676
+ # 'bb' => 3
677
+ EnforcedHashRocketStyle: key
678
+ SupportedHashRocketStyles:
679
+ - key
680
+ - separator
681
+ - table
682
+ # Alignment of entries using colon as separator. Valid values are:
683
+ #
684
+ # key - left alignment of keys
685
+ # a: 0
686
+ # bb: 1
687
+ # separator - alignment of colons, keys are right aligned
688
+ # a: 0
689
+ # bb: 1
690
+ # table - left alignment of keys and values
691
+ # a: 0
692
+ # bb: 1
693
+ EnforcedColonStyle: key
694
+ SupportedColonStyles:
695
+ - key
696
+ - separator
697
+ - table
698
+ # Select whether hashes that are the last argument in a method call should be
699
+ # inspected? Valid values are:
700
+ #
701
+ # always_inspect - Inspect both implicit and explicit hashes.
702
+ # Registers an offense for:
703
+ # function(a: 1,
704
+ # b: 2)
705
+ # Registers an offense for:
706
+ # function({a: 1,
707
+ # b: 2})
708
+ # always_ignore - Ignore both implicit and explicit hashes.
709
+ # Accepts:
710
+ # function(a: 1,
711
+ # b: 2)
712
+ # Accepts:
713
+ # function({a: 1,
714
+ # b: 2})
715
+ # ignore_implicit - Ignore only implicit hashes.
716
+ # Accepts:
717
+ # function(a: 1,
718
+ # b: 2)
719
+ # Registers an offense for:
720
+ # function({a: 1,
721
+ # b: 2})
722
+ # ignore_explicit - Ignore only explicit hashes.
723
+ # Accepts:
724
+ # function({a: 1,
725
+ # b: 2})
726
+ # Registers an offense for:
727
+ # function(a: 1,
728
+ # b: 2)
729
+ EnforcedLastArgumentHashStyle: always_inspect
730
+ SupportedLastArgumentHashStyles:
731
+ - always_inspect
732
+ - always_ignore
733
+ - ignore_implicit
734
+ - ignore_explicit
735
+
736
+ Layout/HeredocArgumentClosingParenthesis:
737
+ Description: >-
738
+ Checks for the placement of the closing parenthesis in a
739
+ method call that passes a HEREDOC string as an argument.
740
+ Enabled: false
741
+ StyleGuide: '#heredoc-argument-closing-parentheses'
742
+ VersionAdded: '0.68'
743
+
744
+ Layout/HeredocIndentation:
763
745
  Description: 'This cop checks the indentation of the here document bodies.'
764
746
  StyleGuide: '#squiggly-heredocs'
765
747
  Enabled: true
766
748
  VersionAdded: '0.49'
767
- VersionChanged: '0.69'
749
+ VersionChanged: '0.77'
768
750
  EnforcedStyle: squiggly
769
751
  SupportedStyles:
770
752
  - squiggly
@@ -806,11 +788,6 @@ Layout/InitialIndentation:
806
788
  Enabled: true
807
789
  VersionAdded: '0.49'
808
790
 
809
- Layout/LeadingBlankLines:
810
- Description: Check for unnecessary blank lines at the beginning of a file.
811
- Enabled: true
812
- VersionAdded: '0.57'
813
-
814
791
  Layout/LeadingCommentSpace:
815
792
  Description: 'Comments should start with a space.'
816
793
  StyleGuide: '#hash-space'
@@ -818,6 +795,36 @@ Layout/LeadingCommentSpace:
818
795
  VersionAdded: '0.49'
819
796
  VersionChanged: '0.73'
820
797
  AllowDoxygenCommentStyle: false
798
+ AllowGemfileRubyComment: false
799
+
800
+ Layout/LeadingEmptyLines:
801
+ Description: Check for unnecessary blank lines at the beginning of a file.
802
+ Enabled: true
803
+ VersionAdded: '0.57'
804
+ VersionChanged: '0.77'
805
+
806
+ Layout/LineLength:
807
+ Description: 'Limit lines to 80 characters.'
808
+ StyleGuide: '#80-character-limits'
809
+ Enabled: true
810
+ VersionAdded: '0.25'
811
+ VersionChanged: '0.78'
812
+ AutoCorrect: false
813
+ Max: 80
814
+ # To make it possible to copy or click on URIs in the code, we allow lines
815
+ # containing a URI to be longer than Max.
816
+ AllowHeredoc: true
817
+ AllowURI: true
818
+ URISchemes:
819
+ - http
820
+ - https
821
+ # The IgnoreCopDirectives option causes the LineLength rule to ignore cop
822
+ # directives like '# rubocop: enable ...' when calculating a line's length.
823
+ IgnoreCopDirectives: true
824
+ # The IgnoredPatterns option is a list of !ruby/regexp and/or string
825
+ # elements. Strings will be converted to Regexp objects. A line that matches
826
+ # any regular expression listed in this option will be ignored by LineLength.
827
+ IgnoredPatterns: []
821
828
 
822
829
  Layout/MultilineArrayBraceLayout:
823
830
  Description: >-
@@ -960,6 +967,35 @@ Layout/MultilineOperationIndentation:
960
967
  # But it can be overridden by setting this parameter
961
968
  IndentationWidth: ~
962
969
 
970
+ Layout/ParameterAlignment:
971
+ Description: >-
972
+ Align the parameters of a method definition if they span more
973
+ than one line.
974
+ StyleGuide: '#no-double-indent'
975
+ Enabled: true
976
+ VersionAdded: '0.49'
977
+ VersionChanged: '0.77'
978
+ # Alignment of parameters in multi-line method calls.
979
+ #
980
+ # The `with_first_parameter` style aligns the following lines along the same
981
+ # column as the first parameter.
982
+ #
983
+ # def method_foo(a,
984
+ # b)
985
+ #
986
+ # The `with_fixed_indentation` style aligns the following lines with one
987
+ # level of indentation relative to the start of the line with the method call.
988
+ #
989
+ # def method_foo(a,
990
+ # b)
991
+ EnforcedStyle: with_first_parameter
992
+ SupportedStyles:
993
+ - with_first_parameter
994
+ - with_fixed_indentation
995
+ # By default, the indentation width from Layout/IndentationWidth is used
996
+ # But it can be overridden by setting this parameter
997
+ IndentationWidth: ~
998
+
963
999
  Layout/RescueEnsureAlignment:
964
1000
  Description: 'Align rescues and ensures correctly.'
965
1001
  Enabled: true
@@ -1033,6 +1069,10 @@ Layout/SpaceAroundOperators:
1033
1069
  # with an operator on the previous or next line, not counting empty lines
1034
1070
  # or comment lines.
1035
1071
  AllowForAlignment: true
1072
+ EnforcedStyleForExponentOperator: no_space
1073
+ SupportedStylesForExponentOperator:
1074
+ - space
1075
+ - no_space
1036
1076
 
1037
1077
  Layout/SpaceBeforeBlockBraces:
1038
1078
  Description: >-
@@ -1202,11 +1242,12 @@ Layout/Tab:
1202
1242
  # replace each tab.
1203
1243
  IndentationWidth: ~
1204
1244
 
1205
- Layout/TrailingBlankLines:
1245
+ Layout/TrailingEmptyLines:
1206
1246
  Description: 'Checks trailing blank lines and final newline.'
1207
1247
  StyleGuide: '#newline-eof'
1208
1248
  Enabled: true
1209
1249
  VersionAdded: '0.49'
1250
+ VersionChanged: '0.77'
1210
1251
  EnforcedStyle: final_newline
1211
1252
  SupportedStyles:
1212
1253
  - final_newline
@@ -1290,16 +1331,17 @@ Lint/DuplicateCaseCondition:
1290
1331
  Enabled: true
1291
1332
  VersionAdded: '0.45'
1292
1333
 
1334
+ Lint/DuplicateHashKey:
1335
+ Description: 'Check for duplicate keys in hash literals.'
1336
+ Enabled: true
1337
+ VersionAdded: '0.34'
1338
+ VersionChanged: '0.77'
1339
+
1293
1340
  Lint/DuplicateMethods:
1294
1341
  Description: 'Check for duplicate method definitions.'
1295
1342
  Enabled: true
1296
1343
  VersionAdded: '0.29'
1297
1344
 
1298
- Lint/DuplicatedKey:
1299
- Description: 'Check for duplicate keys in hash literals.'
1300
- Enabled: true
1301
- VersionAdded: '0.34'
1302
-
1303
1345
  Lint/EachWithObjectArgument:
1304
1346
  Description: 'Check for immutable argument given to each_with_object.'
1305
1347
  Enabled: true
@@ -1367,14 +1409,6 @@ Lint/FormatParameterMismatch:
1367
1409
  Enabled: true
1368
1410
  VersionAdded: '0.33'
1369
1411
 
1370
- Lint/HandleExceptions:
1371
- Description: "Don't suppress exception."
1372
- StyleGuide: '#dont-hide-exceptions'
1373
- Enabled: true
1374
- AllowComments: false
1375
- VersionAdded: '0.9'
1376
- VersionChanged: '0.70'
1377
-
1378
1412
  Lint/HeredocMethodCallPosition:
1379
1413
  Description: >-
1380
1414
  Checks for the ordering of a method call where
@@ -1444,10 +1478,11 @@ Lint/MissingCopEnableDirective:
1444
1478
  # .inf for any size
1445
1479
  MaximumRangeSize: .inf
1446
1480
 
1447
- Lint/MultipleCompare:
1448
- Description: "Use `&&` operator to compare multiple value."
1481
+ Lint/MultipleComparison:
1482
+ Description: "Use `&&` operator to compare multiple values."
1449
1483
  Enabled: true
1450
1484
  VersionAdded: '0.47'
1485
+ VersionChanged: '0.77'
1451
1486
 
1452
1487
  Lint/NestedMethodDefinition:
1453
1488
  Description: 'Do not use nested method definitions.'
@@ -1467,6 +1502,12 @@ Lint/NextWithoutAccumulator:
1467
1502
  Enabled: true
1468
1503
  VersionAdded: '0.36'
1469
1504
 
1505
+ Lint/NonDeterministicRequireOrder:
1506
+ Description: 'Always sort arrays returned by Dir.glob when requiring files.'
1507
+ Enabled: true
1508
+ VersionAdded: '0.78'
1509
+ Safe: false
1510
+
1470
1511
  Lint/NonLocalExitFromIterator:
1471
1512
  Description: 'Do not use return in iterator to cause non-local exit.'
1472
1513
  Enabled: true
@@ -1512,6 +1553,36 @@ Lint/RandOne:
1512
1553
  Enabled: true
1513
1554
  VersionAdded: '0.36'
1514
1555
 
1556
+ Lint/RedundantCopDisableDirective:
1557
+ Description: >-
1558
+ Checks for rubocop:disable comments that can be removed.
1559
+ Note: this cop is not disabled when disabling all cops.
1560
+ It must be explicitly disabled.
1561
+ Enabled: true
1562
+ VersionAdded: '0.76'
1563
+
1564
+ Lint/RedundantCopEnableDirective:
1565
+ Description: Checks for rubocop:enable comments that can be removed.
1566
+ Enabled: true
1567
+ VersionAdded: '0.76'
1568
+
1569
+ Lint/RedundantRequireStatement:
1570
+ Description: 'Checks for unnecessary `require` statement.'
1571
+ Enabled: true
1572
+ VersionAdded: '0.76'
1573
+
1574
+ Lint/RedundantSplatExpansion:
1575
+ Description: 'Checks for splat unnecessarily being called on literals.'
1576
+ Enabled: true
1577
+ VersionChanged: '0.76'
1578
+
1579
+ Lint/RedundantStringCoercion:
1580
+ Description: 'Checks for Object#to_s usage in string interpolation.'
1581
+ StyleGuide: '#no-to-s'
1582
+ Enabled: true
1583
+ VersionAdded: '0.19'
1584
+ VersionChanged: '0.77'
1585
+
1515
1586
  Lint/RedundantWithIndex:
1516
1587
  Description: 'Checks for redundant `with_index`.'
1517
1588
  Enabled: true
@@ -1557,8 +1628,8 @@ Lint/SafeNavigationChain:
1557
1628
  Description: 'Do not chain ordinary method call after safe navigation operator.'
1558
1629
  Enabled: true
1559
1630
  VersionAdded: '0.47'
1560
- VersionChanged: '0.56'
1561
- Whitelist:
1631
+ VersionChanged: '0.77'
1632
+ AllowedMethods:
1562
1633
  - present?
1563
1634
  - blank?
1564
1635
  - presence
@@ -1572,14 +1643,14 @@ Lint/SafeNavigationConsistency:
1572
1643
  for all method calls on that same object.
1573
1644
  Enabled: true
1574
1645
  VersionAdded: '0.55'
1575
- Whitelist:
1646
+ VersionChanged: '0.77'
1647
+ AllowedMethods:
1576
1648
  - present?
1577
1649
  - blank?
1578
1650
  - presence
1579
1651
  - try
1580
1652
  - try!
1581
1653
 
1582
-
1583
1654
  Lint/SafeNavigationWithEmpty:
1584
1655
  Description: 'Avoid `foo&.empty?` in conditionals.'
1585
1656
  Enabled: true
@@ -1617,12 +1688,13 @@ Lint/ShadowingOuterLocalVariable:
1617
1688
  Enabled: true
1618
1689
  VersionAdded: '0.9'
1619
1690
 
1620
- Lint/StringConversionInInterpolation:
1621
- Description: 'Checks for Object#to_s usage in string interpolation.'
1622
- StyleGuide: '#no-to-s'
1691
+ Lint/SuppressedException:
1692
+ Description: "Don't suppress exceptions."
1693
+ StyleGuide: '#dont-hide-exceptions'
1623
1694
  Enabled: true
1624
- VersionAdded: '0.19'
1625
- VersionChanged: '0.20'
1695
+ AllowComments: false
1696
+ VersionAdded: '0.9'
1697
+ VersionChanged: '0.77'
1626
1698
 
1627
1699
  Lint/Syntax:
1628
1700
  Description: 'Checks syntax error.'
@@ -1645,30 +1717,6 @@ Lint/UnifiedInteger:
1645
1717
  Enabled: true
1646
1718
  VersionAdded: '0.43'
1647
1719
 
1648
- Lint/UnneededCopDisableDirective:
1649
- Description: >-
1650
- Checks for rubocop:disable comments that can be removed.
1651
- Note: this cop is not disabled when disabling all cops.
1652
- It must be explicitly disabled.
1653
- Enabled: true
1654
- VersionAdded: '0.53'
1655
-
1656
- Lint/UnneededCopEnableDirective:
1657
- Description: Checks for rubocop:enable comments that can be removed.
1658
- Enabled: true
1659
- VersionAdded: '0.53'
1660
-
1661
- Lint/UnneededRequireStatement:
1662
- Description: 'Checks for unnecessary `require` statement.'
1663
- Enabled: true
1664
- VersionAdded: '0.51'
1665
-
1666
- Lint/UnneededSplatExpansion:
1667
- Description: 'Checks for splat unnecessarily being called on literals.'
1668
- Enabled: true
1669
- VersionAdded: '0.43'
1670
- VersionChanged: '0.74'
1671
-
1672
1720
  Lint/UnreachableCode:
1673
1721
  Description: 'Unreachable code.'
1674
1722
  Enabled: true
@@ -1736,6 +1784,8 @@ Lint/UselessSetterCall:
1736
1784
  Description: 'Checks for useless setter call to a local variable.'
1737
1785
  Enabled: true
1738
1786
  VersionAdded: '0.13'
1787
+ VersionChanged: '0.80'
1788
+ Safe: false
1739
1789
 
1740
1790
  Lint/Void:
1741
1791
  Description: 'Possible use of operator/literal/variable in void context.'
@@ -1798,29 +1848,6 @@ Metrics/CyclomaticComplexity:
1798
1848
  VersionAdded: '0.25'
1799
1849
  Max: 6
1800
1850
 
1801
- Metrics/LineLength:
1802
- Description: 'Limit lines to 80 characters.'
1803
- StyleGuide: '#80-character-limits'
1804
- Enabled: true
1805
- VersionAdded: '0.25'
1806
- VersionChanged: '0.68'
1807
- AutoCorrect: false
1808
- Max: 80
1809
- # To make it possible to copy or click on URIs in the code, we allow lines
1810
- # containing a URI to be longer than Max.
1811
- AllowHeredoc: true
1812
- AllowURI: true
1813
- URISchemes:
1814
- - http
1815
- - https
1816
- # The IgnoreCopDirectives option causes the LineLength rule to ignore cop
1817
- # directives like '# rubocop: enable ...' when calculating a line's length.
1818
- IgnoreCopDirectives: true
1819
- # The IgnoredPatterns option is a list of !ruby/regexp and/or string
1820
- # elements. Strings will be converted to Regexp objects. A line that matches
1821
- # any regular expression listed in this option will be ignored by LineLength.
1822
- IgnoredPatterns: []
1823
-
1824
1851
  Metrics/MethodLength:
1825
1852
  Description: 'Avoid methods longer than 10 lines of code.'
1826
1853
  StyleGuide: '#short-methods'
@@ -1860,7 +1887,7 @@ Migration/DepartmentName:
1860
1887
  Description: >-
1861
1888
  Check that cop names in rubocop:disable (etc) comments are
1862
1889
  given with department name.
1863
- Enabled: false
1890
+ Enabled: true
1864
1891
 
1865
1892
  #################### Naming ##############################
1866
1893
 
@@ -1882,6 +1909,21 @@ Naming/BinaryOperatorParameterName:
1882
1909
  Enabled: true
1883
1910
  VersionAdded: '0.50'
1884
1911
 
1912
+ Naming/BlockParameterName:
1913
+ Description: >-
1914
+ Checks for block parameter names that contain capital letters,
1915
+ end in numbers, or do not meet a minimal length.
1916
+ Enabled: true
1917
+ VersionAdded: '0.53'
1918
+ VersionChanged: '0.77'
1919
+ # Parameter names may be equal to or greater than this value
1920
+ MinNameLength: 1
1921
+ AllowNamesEndingInNumbers: true
1922
+ # Allowed names that will not register an offense
1923
+ AllowedNames: []
1924
+ # Forbidden names that will register an offense
1925
+ ForbiddenNames: []
1926
+
1885
1927
  Naming/ClassAndModuleCamelCase:
1886
1928
  Description: 'Use CamelCase for classes and modules.'
1887
1929
  StyleGuide: '#camelcase-classes'
@@ -1973,7 +2015,7 @@ Naming/HeredocDelimiterNaming:
1973
2015
  StyleGuide: '#heredoc-delimiters'
1974
2016
  Enabled: true
1975
2017
  VersionAdded: '0.50'
1976
- Blacklist:
2018
+ ForbiddenDelimiters:
1977
2019
  - !ruby/regexp '/(^|\s)(EO[A-Z]{1}|END)(\s|$)/'
1978
2020
 
1979
2021
  Naming/MemoizedInstanceVariableName:
@@ -2005,25 +2047,51 @@ Naming/MethodName:
2005
2047
  #
2006
2048
  IgnoredPatterns: []
2007
2049
 
2050
+ Naming/MethodParameterName:
2051
+ Description: >-
2052
+ Checks for method parameter names that contain capital letters,
2053
+ end in numbers, or do not meet a minimal length.
2054
+ Enabled: true
2055
+ VersionAdded: '0.53'
2056
+ VersionChanged: '0.77'
2057
+ # Parameter names may be equal to or greater than this value
2058
+ MinNameLength: 3
2059
+ AllowNamesEndingInNumbers: true
2060
+ # Allowed names that will not register an offense
2061
+ AllowedNames:
2062
+ - io
2063
+ - id
2064
+ - to
2065
+ - by
2066
+ - 'on'
2067
+ - in
2068
+ - at
2069
+ - ip
2070
+ - db
2071
+ - os
2072
+ - pp
2073
+ # Forbidden names that will register an offense
2074
+ ForbiddenNames: []
2075
+
2008
2076
  Naming/PredicateName:
2009
2077
  Description: 'Check the names of predicate methods.'
2010
2078
  StyleGuide: '#bool-methods-qmark'
2011
2079
  Enabled: true
2012
2080
  VersionAdded: '0.50'
2013
- VersionChanged: '0.51'
2081
+ VersionChanged: '0.77'
2014
2082
  # Predicate name prefixes.
2015
2083
  NamePrefix:
2016
2084
  - is_
2017
2085
  - has_
2018
2086
  - have_
2019
2087
  # Predicate name prefixes that should be removed.
2020
- NamePrefixBlacklist:
2088
+ ForbiddenPrefixes:
2021
2089
  - is_
2022
2090
  - has_
2023
2091
  - have_
2024
- # Predicate names which, despite having a blacklisted prefix, or no `?`,
2092
+ # Predicate names which, despite having a forbidden prefix, or no `?`,
2025
2093
  # should still be accepted
2026
- NameWhitelist:
2094
+ AllowedMethods:
2027
2095
  - is_a?
2028
2096
  # Method definition macros for dynamically generated methods.
2029
2097
  MethodDefinitionMacros:
@@ -2041,45 +2109,6 @@ Naming/RescuedExceptionsVariableName:
2041
2109
  VersionChanged: '0.68'
2042
2110
  PreferredName: e
2043
2111
 
2044
- Naming/UncommunicativeBlockParamName:
2045
- Description: >-
2046
- Checks for block parameter names that contain capital letters,
2047
- end in numbers, or do not meet a minimal length.
2048
- Enabled: true
2049
- VersionAdded: '0.53'
2050
- # Parameter names may be equal to or greater than this value
2051
- MinNameLength: 1
2052
- AllowNamesEndingInNumbers: true
2053
- # Whitelisted names that will not register an offense
2054
- AllowedNames: []
2055
- # Blacklisted names that will register an offense
2056
- ForbiddenNames: []
2057
-
2058
- Naming/UncommunicativeMethodParamName:
2059
- Description: >-
2060
- Checks for method parameter names that contain capital letters,
2061
- end in numbers, or do not meet a minimal length.
2062
- Enabled: true
2063
- VersionAdded: '0.53'
2064
- VersionChanged: '0.59'
2065
- # Parameter names may be equal to or greater than this value
2066
- MinNameLength: 3
2067
- AllowNamesEndingInNumbers: true
2068
- # Whitelisted names that will not register an offense
2069
- AllowedNames:
2070
- - io
2071
- - id
2072
- - to
2073
- - by
2074
- - 'on'
2075
- - in
2076
- - at
2077
- - ip
2078
- - db
2079
- # Blacklisted names that will register an offense
2080
- ForbiddenNames: []
2081
-
2082
-
2083
2112
  Naming/VariableName:
2084
2113
  Description: 'Use the configured style when naming variables.'
2085
2114
  StyleGuide: '#snake-case-symbols-methods-vars'
@@ -2331,24 +2360,12 @@ Style/BlockDelimiters:
2331
2360
  # # also good
2332
2361
  # collection.each do |element| puts element end
2333
2362
  AllowBracesOnProceduralOneLiners: false
2334
-
2335
- Style/BracesAroundHashParameters:
2336
- Description: 'Enforce braces style around hash parameters.'
2337
- Enabled: true
2338
- VersionAdded: '0.14.1'
2339
- VersionChanged: '0.28'
2340
- EnforcedStyle: no_braces
2341
- SupportedStyles:
2342
- # The `braces` style enforces braces around all method parameters that are
2343
- # hashes.
2344
- - braces
2345
- # The `no_braces` style checks that the last parameter doesn't have braces
2346
- # around it.
2347
- - no_braces
2348
- # The `context_dependent` style checks that the last parameter doesn't have
2349
- # braces around it, but requires braces if the second to last parameter is
2350
- # also a hash literal.
2351
- - context_dependent
2363
+ # The BracesRequiredMethods overrides all other configurations except
2364
+ # IgnoredMethods. It can be used to enforce that all blocks for specific
2365
+ # methods use braces. For example, you can use this to enforce Sorbet
2366
+ # signatures use braces even when the rest of your codebase enforces
2367
+ # the `line_count_based` style.
2368
+ BracesRequiredMethods: []
2352
2369
 
2353
2370
  Style/CaseEquality:
2354
2371
  Description: 'Avoid explicit use of the case equality operator(===).'
@@ -2367,7 +2384,7 @@ Style/ClassAndModuleChildren:
2367
2384
  StyleGuide: '#namespace-definition'
2368
2385
  # Moving from compact to nested children requires knowledge of whether the
2369
2386
  # outer parent is a module or a class. Moving from nested to compact requires
2370
- # verification that the outer parent is defined elsewhere. Rubocop does not
2387
+ # verification that the outer parent is defined elsewhere. RuboCop does not
2371
2388
  # have the knowledge to perform either operation safely and thus requires
2372
2389
  # manual oversight.
2373
2390
  SafeAutoCorrect: false
@@ -2734,7 +2751,7 @@ Style/FrozenStringLiteralComment:
2734
2751
  to help transition to frozen string literals by default.
2735
2752
  Enabled: true
2736
2753
  VersionAdded: '0.36'
2737
- VersionChanged: '0.69'
2754
+ VersionChanged: '0.79'
2738
2755
  EnforcedStyle: always
2739
2756
  SupportedStyles:
2740
2757
  # `always` will always add the frozen string literal comment to a file
@@ -2742,9 +2759,14 @@ Style/FrozenStringLiteralComment:
2742
2759
  # string literal. If you run code against multiple versions of Ruby, it is
2743
2760
  # possible that this will create errors in Ruby 2.3.0+.
2744
2761
  - always
2762
+ # `always_true` will add the frozen string literal comment to a file,
2763
+ # similarly to the `always` style, but will also change any disabled
2764
+ # comments (e.g. `# frozen_string_literal: false`) to be enabled.
2765
+ - always_true
2745
2766
  # `never` will enforce that the frozen string literal comment does not
2746
2767
  # exist in a file.
2747
2768
  - never
2769
+ Safe: false
2748
2770
 
2749
2771
  Style/GlobalVars:
2750
2772
  Description: 'Do not introduce global variables.'
@@ -2765,6 +2787,13 @@ Style/GuardClause:
2765
2787
  # needs to have to trigger this cop
2766
2788
  MinBodyLength: 1
2767
2789
 
2790
+ Style/HashEachMethods:
2791
+ Description: 'Use Hash#each_key and Hash#each_value.'
2792
+ StyleGuide: '#hash-each'
2793
+ Enabled: pending
2794
+ VersionAdded: '0.80'
2795
+ Safe: false
2796
+
2768
2797
  Style/HashSyntax:
2769
2798
  Description: >-
2770
2799
  Prefer Ruby 1.9 hash syntax { a: 1, b: 2 } over 1.8 syntax
@@ -2788,6 +2817,18 @@ Style/HashSyntax:
2788
2817
  # Do not suggest { a?: 1 } over { :a? => 1 } in ruby19 style
2789
2818
  PreferHashRocketsForNonAlnumEndingSymbols: false
2790
2819
 
2820
+ Style/HashTransformKeys:
2821
+ Description: 'Prefer `transform_keys` over `each_with_object` and `map`.'
2822
+ Enabled: 'pending'
2823
+ VersionAdded: '0.80'
2824
+ Safe: false
2825
+
2826
+ Style/HashTransformValues:
2827
+ Description: 'Prefer `transform_values` over `each_with_object` and `map`.'
2828
+ Enabled: 'pending'
2829
+ VersionAdded: '0.80'
2830
+ Safe: false
2831
+
2791
2832
  Style/IdenticalConditionalBranches:
2792
2833
  Description: >-
2793
2834
  Checks that conditional statements do not have an identical
@@ -2874,8 +2915,9 @@ Style/IpAddresses:
2874
2915
  Description: "Don't include literal IP addresses in code."
2875
2916
  Enabled: false
2876
2917
  VersionAdded: '0.58'
2877
- # Allow strings to be whitelisted
2878
- Whitelist:
2918
+ VersionChanged: '0.77'
2919
+ # Allow addresses to be permitted
2920
+ AllowedAddresses:
2879
2921
  - "::"
2880
2922
  # :: is a valid IPv6 address, but could potentially be legitimately in code
2881
2923
 
@@ -3148,8 +3190,8 @@ Style/NestedParenthesizedCalls:
3148
3190
  argument list of another parenthesized method call.
3149
3191
  Enabled: true
3150
3192
  VersionAdded: '0.36'
3151
- VersionChanged: '0.50'
3152
- Whitelist:
3193
+ VersionChanged: '0.77'
3194
+ AllowedMethods:
3153
3195
  - be
3154
3196
  - be_a
3155
3197
  - be_an
@@ -3402,6 +3444,16 @@ Style/RedundantBegin:
3402
3444
  VersionAdded: '0.10'
3403
3445
  VersionChanged: '0.21'
3404
3446
 
3447
+ Style/RedundantCapitalW:
3448
+ Description: 'Checks for %W when interpolation is not needed.'
3449
+ Enabled: true
3450
+ VersionAdded: '0.76'
3451
+
3452
+ Style/RedundantCondition:
3453
+ Description: 'Checks for unnecessary conditional expressions.'
3454
+ Enabled: true
3455
+ VersionAdded: '0.76'
3456
+
3405
3457
  Style/RedundantConditional:
3406
3458
  Description: "Don't return true/false from a conditional."
3407
3459
  Enabled: true
@@ -3420,11 +3472,22 @@ Style/RedundantFreeze:
3420
3472
  VersionAdded: '0.34'
3421
3473
  VersionChanged: '0.66'
3422
3474
 
3475
+ Style/RedundantInterpolation:
3476
+ Description: 'Checks for strings that are just an interpolated expression.'
3477
+ Enabled: true
3478
+ VersionAdded: '0.76'
3479
+
3423
3480
  Style/RedundantParentheses:
3424
3481
  Description: "Checks for parentheses that seem not to serve any purpose."
3425
3482
  Enabled: true
3426
3483
  VersionAdded: '0.36'
3427
3484
 
3485
+ Style/RedundantPercentQ:
3486
+ Description: 'Checks for %q/%Q when single quotes or double quotes would do.'
3487
+ StyleGuide: '#percent-q'
3488
+ Enabled: true
3489
+ VersionAdded: '0.76'
3490
+
3428
3491
  Style/RedundantReturn:
3429
3492
  Description: "Don't use return where it's not required."
3430
3493
  StyleGuide: '#no-explicit-return'
@@ -3441,6 +3504,13 @@ Style/RedundantSelf:
3441
3504
  VersionAdded: '0.10'
3442
3505
  VersionChanged: '0.13'
3443
3506
 
3507
+ Style/RedundantSort:
3508
+ Description: >-
3509
+ Use `min` instead of `sort.first`,
3510
+ `max_by` instead of `sort_by...last`, etc.
3511
+ Enabled: true
3512
+ VersionAdded: '0.76'
3513
+
3444
3514
  Style/RedundantSortBy:
3445
3515
  Description: 'Use `sort` instead of `sort_by { |x| x }`.'
3446
3516
  Enabled: true
@@ -3498,11 +3568,11 @@ Style/SafeNavigation:
3498
3568
  safe navigation (`&.`).
3499
3569
  Enabled: true
3500
3570
  VersionAdded: '0.43'
3501
- VersionChanged: '0.56'
3571
+ VersionChanged: '0.77'
3502
3572
  # Safe navigation may cause a statement to start returning `nil` in addition
3503
3573
  # to whatever it used to return.
3504
3574
  ConvertCodeThatCanStartToReturnNil: false
3505
- Whitelist:
3575
+ AllowedMethods:
3506
3576
  - present?
3507
3577
  - blank?
3508
3578
  - presence
@@ -3780,7 +3850,7 @@ Style/TrivialAccessors:
3780
3850
  StyleGuide: '#attr_family'
3781
3851
  Enabled: true
3782
3852
  VersionAdded: '0.9'
3783
- VersionChanged: '0.38'
3853
+ VersionChanged: '0.77'
3784
3854
  # When set to `false` the cop will suggest the use of accessor methods
3785
3855
  # in situations like:
3786
3856
  #
@@ -3801,7 +3871,7 @@ Style/TrivialAccessors:
3801
3871
  # Commonly used in DSLs
3802
3872
  AllowDSLWriters: false
3803
3873
  IgnoreClassMethods: false
3804
- Whitelist:
3874
+ AllowedMethods:
3805
3875
  - to_ary
3806
3876
  - to_a
3807
3877
  - to_c
@@ -3828,35 +3898,6 @@ Style/UnlessElse:
3828
3898
  Enabled: true
3829
3899
  VersionAdded: '0.9'
3830
3900
 
3831
- Style/UnneededCapitalW:
3832
- Description: 'Checks for %W when interpolation is not needed.'
3833
- Enabled: true
3834
- VersionAdded: '0.21'
3835
- VersionChanged: '0.24'
3836
-
3837
- Style/UnneededCondition:
3838
- Description: 'Checks for unnecessary conditional expressions.'
3839
- Enabled: true
3840
- VersionAdded: '0.57'
3841
-
3842
- Style/UnneededInterpolation:
3843
- Description: 'Checks for strings that are just an interpolated expression.'
3844
- Enabled: true
3845
- VersionAdded: '0.36'
3846
-
3847
- Style/UnneededPercentQ:
3848
- Description: 'Checks for %q/%Q when single quotes or double quotes would do.'
3849
- StyleGuide: '#percent-q'
3850
- Enabled: true
3851
- VersionAdded: '0.24'
3852
-
3853
- Style/UnneededSort:
3854
- Description: >-
3855
- Use `min` instead of `sort.first`,
3856
- `max_by` instead of `sort_by...last`, etc.
3857
- Enabled: true
3858
- VersionAdded: '0.55'
3859
-
3860
3901
  Style/UnpackFirst:
3861
3902
  Description: >-
3862
3903
  Checks for accessing the first element of `String#unpack`