rubocop 1.14.0 → 1.18.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -1
  3. data/config/default.yml +120 -34
  4. data/lib/rubocop.rb +8 -0
  5. data/lib/rubocop/cli/command/suggest_extensions.rb +3 -3
  6. data/lib/rubocop/config_loader.rb +1 -1
  7. data/lib/rubocop/config_validator.rb +5 -5
  8. data/lib/rubocop/cop/base.rb +2 -2
  9. data/lib/rubocop/cop/bundler/duplicated_gem.rb +1 -1
  10. data/lib/rubocop/cop/bundler/gem_version.rb +38 -4
  11. data/lib/rubocop/cop/corrector.rb +4 -4
  12. data/lib/rubocop/cop/generator.rb +1 -1
  13. data/lib/rubocop/cop/internal_affairs/example_description.rb +1 -1
  14. data/lib/rubocop/cop/internal_affairs/node_matcher_directive.rb +1 -1
  15. data/lib/rubocop/cop/layout/argument_alignment.rb +30 -12
  16. data/lib/rubocop/cop/layout/array_alignment.rb +2 -2
  17. data/lib/rubocop/cop/layout/block_alignment.rb +1 -1
  18. data/lib/rubocop/cop/layout/case_indentation.rb +57 -9
  19. data/lib/rubocop/cop/layout/closing_parenthesis_indentation.rb +7 -1
  20. data/lib/rubocop/cop/layout/comment_indentation.rb +1 -1
  21. data/lib/rubocop/cop/layout/dot_position.rb +7 -1
  22. data/lib/rubocop/cop/layout/empty_line_after_guard_clause.rb +13 -15
  23. data/lib/rubocop/cop/layout/first_array_element_indentation.rb +2 -2
  24. data/lib/rubocop/cop/layout/first_hash_element_indentation.rb +14 -2
  25. data/lib/rubocop/cop/layout/first_parameter_indentation.rb +1 -1
  26. data/lib/rubocop/cop/layout/hash_alignment.rb +40 -14
  27. data/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +1 -1
  28. data/lib/rubocop/cop/layout/indentation_width.rb +13 -2
  29. data/lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb +122 -0
  30. data/lib/rubocop/cop/layout/multiline_array_brace_layout.rb +6 -6
  31. data/lib/rubocop/cop/layout/multiline_assignment_layout.rb +2 -2
  32. data/lib/rubocop/cop/layout/multiline_hash_brace_layout.rb +6 -6
  33. data/lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb +6 -6
  34. data/lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb +6 -6
  35. data/lib/rubocop/cop/layout/multiline_operation_indentation.rb +3 -3
  36. data/lib/rubocop/cop/layout/parameter_alignment.rb +2 -2
  37. data/lib/rubocop/cop/layout/redundant_line_break.rb +11 -9
  38. data/lib/rubocop/cop/layout/space_around_keyword.rb +28 -0
  39. data/lib/rubocop/cop/layout/space_around_operators.rb +7 -1
  40. data/lib/rubocop/cop/lint/deprecated_class_methods.rb +4 -0
  41. data/lib/rubocop/cop/lint/empty_block.rb +18 -2
  42. data/lib/rubocop/cop/lint/empty_in_pattern.rb +62 -0
  43. data/lib/rubocop/cop/lint/literal_as_condition.rb +13 -1
  44. data/lib/rubocop/cop/lint/missing_cop_enable_directive.rb +32 -17
  45. data/lib/rubocop/cop/lint/nested_percent_literal.rb +1 -1
  46. data/lib/rubocop/cop/lint/percent_string_array.rb +1 -1
  47. data/lib/rubocop/cop/lint/percent_symbol_array.rb +1 -1
  48. data/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb +105 -74
  49. data/lib/rubocop/cop/lint/redundant_cop_enable_directive.rb +5 -0
  50. data/lib/rubocop/cop/lint/symbol_conversion.rb +3 -13
  51. data/lib/rubocop/cop/lint/unused_block_argument.rb +1 -1
  52. data/lib/rubocop/cop/lint/useless_assignment.rb +1 -1
  53. data/lib/rubocop/cop/lint/void.rb +1 -1
  54. data/lib/rubocop/cop/metrics/utils/code_length_calculator.rb +1 -1
  55. data/lib/rubocop/cop/migration/department_name.rb +3 -1
  56. data/lib/rubocop/cop/mixin/check_line_breakable.rb +28 -3
  57. data/lib/rubocop/cop/mixin/frozen_string_literal.rb +6 -0
  58. data/lib/rubocop/cop/mixin/hash_alignment_styles.rb +14 -3
  59. data/lib/rubocop/cop/mixin/string_literals_help.rb +2 -4
  60. data/lib/rubocop/cop/mixin/symbol_help.rb +13 -0
  61. data/lib/rubocop/cop/naming/inclusive_language.rb +249 -0
  62. data/lib/rubocop/cop/naming/memoized_instance_variable_name.rb +2 -2
  63. data/lib/rubocop/cop/style/class_and_module_children.rb +28 -2
  64. data/lib/rubocop/cop/style/empty_literal.rb +8 -1
  65. data/lib/rubocop/cop/style/hash_each_methods.rb +18 -1
  66. data/lib/rubocop/cop/style/identical_conditional_branches.rb +58 -8
  67. data/lib/rubocop/cop/style/in_pattern_then.rb +56 -0
  68. data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +2 -1
  69. data/lib/rubocop/cop/style/multiline_in_pattern_then.rb +62 -0
  70. data/lib/rubocop/cop/style/multiline_when_then.rb +2 -11
  71. data/lib/rubocop/cop/style/multiple_comparison.rb +1 -1
  72. data/lib/rubocop/cop/style/nil_lambda.rb +29 -12
  73. data/lib/rubocop/cop/style/percent_literal_delimiters.rb +1 -1
  74. data/lib/rubocop/cop/style/quoted_symbols.rb +110 -0
  75. data/lib/rubocop/cop/style/raise_args.rb +2 -0
  76. data/lib/rubocop/cop/style/redundant_begin.rb +1 -1
  77. data/lib/rubocop/cop/style/redundant_regexp_character_class.rb +1 -1
  78. data/lib/rubocop/cop/style/redundant_self.rb +24 -2
  79. data/lib/rubocop/cop/style/regexp_literal.rb +10 -1
  80. data/lib/rubocop/cop/style/special_global_vars.rb +3 -3
  81. data/lib/rubocop/cop/style/string_concatenation.rb +32 -5
  82. data/lib/rubocop/cop/style/string_literals.rb +3 -2
  83. data/lib/rubocop/cop/style/string_literals_in_interpolation.rb +1 -0
  84. data/lib/rubocop/cop/style/swap_values.rb +1 -1
  85. data/lib/rubocop/cop/style/top_level_method_definition.rb +83 -0
  86. data/lib/rubocop/cop/style/trivial_accessors.rb +65 -0
  87. data/lib/rubocop/cop/style/unpack_first.rb +1 -1
  88. data/lib/rubocop/cop/style/when_then.rb +6 -2
  89. data/lib/rubocop/cop/variable_force/variable_table.rb +1 -1
  90. data/lib/rubocop/directive_comment.rb +58 -6
  91. data/lib/rubocop/formatter/junit_formatter.rb +21 -6
  92. data/lib/rubocop/options.rb +18 -24
  93. data/lib/rubocop/rake_task.rb +1 -1
  94. data/lib/rubocop/remote_config.rb +10 -2
  95. data/lib/rubocop/rspec/cop_helper.rb +1 -1
  96. data/lib/rubocop/rspec/expect_offense.rb +1 -1
  97. data/lib/rubocop/version.rb +1 -1
  98. metadata +13 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bf17e65fbe829bbc1328bfc1898fe4df1fc1a1e9773b946e1136b3dc16625fd5
4
- data.tar.gz: a35649eeecce4e75f2fb623094b4cc5f93323c1b44393482c0b57e3b37358d86
3
+ metadata.gz: da981ff0ada31e8ea4e414bf7d7d767fde269a06ad5b0cd61e71a36a16068263
4
+ data.tar.gz: 3b48f1b0f024c3202f5513a05a210707af81caa0b6d0bf2ba5ac4adad69f6b6c
5
5
  SHA512:
6
- metadata.gz: 696e932f19f9f47448de8858c7444be66fb1a58fa25588e26a8b3842a786677bcf3bd49f9f80b945cbbbed3f5826939fbdf8a8cf106e93843e9c659e20d47b10
7
- data.tar.gz: 70729c8cc362bca0ee4397881f2acd0ba088430bfc1c6867e17a9a3da61eff8a0aa911d44a673e1e70d44978638675aedd3717dccfafe3f8cfc78c3f09baeabf
6
+ metadata.gz: ab683eefa5181d9dd814b18fc8a4949940a8623014ee12ded5e89ded4ea32162735275bbe4e27e2b025dc4cfe22d77072129bdc12be3d36ceda0ce232de6d6a8
7
+ data.tar.gz: 9058879a763a810107ce870cdb1eb1269e3bfdd432154d8c9ee19472f6dd69d3624ecaf97d520090ea7f80953f9a68c1da6455484738f28a6cb2ee59cd9c47dd
data/README.md CHANGED
@@ -29,6 +29,8 @@ RuboCop is extremely flexible and most aspects of its behavior can be tweaked vi
29
29
  [![OpenCollective](https://opencollective.com/rubocop/sponsors/badge.svg)](#open-collective-sponsors)
30
30
  [![Tidelift](https://tidelift.com/badges/package/rubygems/rubocop)](https://tidelift.com/subscription/pkg/rubygems-rubocop?utm_source=rubygems-rubocop&utm_medium=referral&utm_campaign=readme)
31
31
 
32
+ Working on RuboCop is often fun, but it also requires a great deal of time and energy.
33
+
32
34
  **Please consider [financially supporting its ongoing development](#funding).**
33
35
 
34
36
  ## Installation
@@ -52,7 +54,7 @@ To prevent an unwanted RuboCop update you might want to use a conservative versi
52
54
  in your `Gemfile`:
53
55
 
54
56
  ```rb
55
- gem 'rubocop', '~> 1.14', require: false
57
+ gem 'rubocop', '~> 1.18', require: false
56
58
  ```
57
59
 
58
60
  See [our versioning policy](https://docs.rubocop.org/rubocop/versioning.html) for further details.
data/config/default.yml CHANGED
@@ -270,8 +270,8 @@ Layout/AccessModifierIndentation:
270
270
  SupportedStyles:
271
271
  - outdent
272
272
  - indent
273
- # By default, the indentation width from Layout/IndentationWidth is used
274
- # But it can be overridden by setting this parameter
273
+ # By default the indentation width from `Layout/IndentationWidth` is used,
274
+ # but it can be overridden by setting this parameter.
275
275
  IndentationWidth: ~
276
276
 
277
277
  Layout/ArgumentAlignment:
@@ -299,8 +299,8 @@ Layout/ArgumentAlignment:
299
299
  SupportedStyles:
300
300
  - with_first_argument
301
301
  - with_fixed_indentation
302
- # By default, the indentation width from Layout/IndentationWidth is used
303
- # But it can be overridden by setting this parameter
302
+ # By default the indentation width from `Layout/IndentationWidth` is used,
303
+ # but it can be overridden by setting this parameter.
304
304
  IndentationWidth: ~
305
305
 
306
306
  Layout/ArrayAlignment:
@@ -328,8 +328,8 @@ Layout/ArrayAlignment:
328
328
  SupportedStyles:
329
329
  - with_first_element
330
330
  - with_fixed_indentation
331
- # By default, the indentation width from Layout/IndentationWidth is used
332
- # But it can be overridden by setting this parameter
331
+ # By default the indentation width from `Layout/IndentationWidth` is used,
332
+ # but it can be overridden by setting this parameter.
333
333
  IndentationWidth: ~
334
334
 
335
335
  Layout/AssignmentIndentation:
@@ -339,8 +339,8 @@ Layout/AssignmentIndentation:
339
339
  Enabled: true
340
340
  VersionAdded: '0.49'
341
341
  VersionChanged: '0.77'
342
- # By default, the indentation width from `Layout/IndentationWidth` is used
343
- # But it can be overridden by setting this parameter
342
+ # By default the indentation width from `Layout/IndentationWidth` is used,
343
+ # but it can be overridden by setting this parameter.
344
344
  IndentationWidth: ~
345
345
 
346
346
  Layout/BeginEndAlignment:
@@ -377,18 +377,19 @@ Layout/BlockEndNewline:
377
377
  VersionAdded: '0.49'
378
378
 
379
379
  Layout/CaseIndentation:
380
- Description: 'Indentation of when in a case/when/[else/]end.'
380
+ Description: 'Indentation of when in a case/(when|in)/[else/]end.'
381
381
  StyleGuide: '#indent-when-to-case'
382
382
  Enabled: true
383
383
  VersionAdded: '0.49'
384
+ VersionChanged: '1.16'
384
385
  EnforcedStyle: case
385
386
  SupportedStyles:
386
387
  - case
387
388
  - end
388
389
  IndentOneStep: false
389
- # By default, the indentation width from `Layout/IndentationWidth` is used.
390
- # But it can be overridden by setting this parameter.
391
- # This only matters if `IndentOneStep` is `true`
390
+ # By default the indentation width from `Layout/IndentationWidth` is used,
391
+ # but it can be overridden by setting this parameter.
392
+ # This only matters if `IndentOneStep` is `true`.
392
393
  IndentationWidth: ~
393
394
 
394
395
  Layout/ClassStructure:
@@ -665,8 +666,8 @@ Layout/FirstArgumentIndentation:
665
666
  # Same as `special_for_inner_method_call` except that the special rule only
666
667
  # applies if the outer method call encloses its arguments in parentheses.
667
668
  - special_for_inner_method_call_in_parentheses
668
- # By default, the indentation width from `Layout/IndentationWidth` is used
669
- # But it can be overridden by setting this parameter
669
+ # By default the indentation width from `Layout/IndentationWidth` is used,
670
+ # but it can be overridden by setting this parameter.
670
671
  IndentationWidth: ~
671
672
 
672
673
  Layout/FirstArrayElementIndentation:
@@ -692,8 +693,8 @@ Layout/FirstArrayElementIndentation:
692
693
  - special_inside_parentheses
693
694
  - consistent
694
695
  - align_brackets
695
- # By default, the indentation width from `Layout/IndentationWidth` is used
696
- # But it can be overridden by setting this parameter
696
+ # By default the indentation width from `Layout/IndentationWidth` is used,
697
+ # but it can be overridden by setting this parameter.
697
698
  IndentationWidth: ~
698
699
 
699
700
  Layout/FirstArrayElementLineBreak:
@@ -724,8 +725,8 @@ Layout/FirstHashElementIndentation:
724
725
  - special_inside_parentheses
725
726
  - consistent
726
727
  - align_braces
727
- # By default, the indentation width from `Layout/IndentationWidth` is used
728
- # But it can be overridden by setting this parameter
728
+ # By default the indentation width from `Layout/IndentationWidth` is used,
729
+ # but it can be overridden by setting this parameter.
729
730
  IndentationWidth: ~
730
731
 
731
732
  Layout/FirstHashElementLineBreak:
@@ -760,8 +761,8 @@ Layout/FirstParameterIndentation:
760
761
  SupportedStyles:
761
762
  - consistent
762
763
  - align_parentheses
763
- # By default, the indentation width from `Layout/IndentationWidth` is used
764
- # But it can be overridden by setting this parameter
764
+ # By default the indentation width from `Layout/IndentationWidth` is used,
765
+ # but it can be overridden by setting this parameter.
765
766
  IndentationWidth: ~
766
767
 
767
768
  Layout/HashAlignment:
@@ -771,7 +772,7 @@ Layout/HashAlignment:
771
772
  Enabled: true
772
773
  AllowMultipleStyles: true
773
774
  VersionAdded: '0.49'
774
- VersionChanged: '0.77'
775
+ VersionChanged: '1.16'
775
776
  # Alignment of entries using hash rocket as separator. Valid values are:
776
777
  #
777
778
  # key - left alignment of keys
@@ -882,8 +883,8 @@ Layout/IndentationStyle:
882
883
  Enabled: true
883
884
  VersionAdded: '0.49'
884
885
  VersionChanged: '0.82'
885
- # By default, the indentation width from Layout/IndentationWidth is used
886
- # But it can be overridden by setting this parameter
886
+ # By default the indentation width from `Layout/IndentationWidth` is used,
887
+ # but it can be overridden by setting this parameter.
887
888
  # It is used during auto-correction to determine how many spaces should
888
889
  # replace each tab.
889
890
  IndentationWidth: ~
@@ -922,6 +923,20 @@ Layout/LeadingEmptyLines:
922
923
  VersionAdded: '0.57'
923
924
  VersionChanged: '0.77'
924
925
 
926
+ Layout/LineEndStringConcatenationIndentation:
927
+ Description: >-
928
+ Checks the indentation of the next line after a line that
929
+ ends with a string literal and a backslash.
930
+ Enabled: pending
931
+ VersionAdded: '1.18'
932
+ EnforcedStyle: aligned
933
+ SupportedStyles:
934
+ - aligned
935
+ - indented
936
+ # By default the indentation width from `Layout/IndentationWidth` is used,
937
+ # but it can be overridden by setting this parameter.
938
+ IndentationWidth: ~
939
+
925
940
  Layout/LineLength:
926
941
  Description: 'Checks that line length does not exceed the configured limit.'
927
942
  StyleGuide: '#max-line-length'
@@ -1052,8 +1067,8 @@ Layout/MultilineMethodCallIndentation:
1052
1067
  - aligned
1053
1068
  - indented
1054
1069
  - indented_relative_to_receiver
1055
- # By default, the indentation width from Layout/IndentationWidth is used
1056
- # But it can be overridden by setting this parameter
1070
+ # By default the indentation width from `Layout/IndentationWidth` is used,
1071
+ # but it can be overridden by setting this parameter.
1057
1072
  IndentationWidth: ~
1058
1073
 
1059
1074
  Layout/MultilineMethodDefinitionBraceLayout:
@@ -1082,8 +1097,8 @@ Layout/MultilineOperationIndentation:
1082
1097
  SupportedStyles:
1083
1098
  - aligned
1084
1099
  - indented
1085
- # By default, the indentation width from `Layout/IndentationWidth` is used
1086
- # But it can be overridden by setting this parameter
1100
+ # By default the indentation width from `Layout/IndentationWidth` is used,
1101
+ # but it can be overridden by setting this parameter.
1087
1102
  IndentationWidth: ~
1088
1103
 
1089
1104
  Layout/ParameterAlignment:
@@ -1111,8 +1126,8 @@ Layout/ParameterAlignment:
1111
1126
  SupportedStyles:
1112
1127
  - with_first_parameter
1113
1128
  - with_fixed_indentation
1114
- # By default, the indentation width from Layout/IndentationWidth is used
1115
- # But it can be overridden by setting this parameter
1129
+ # By default the indentation width from `Layout/IndentationWidth` is used,
1130
+ # but it can be overridden by setting this parameter.
1116
1131
  IndentationWidth: ~
1117
1132
 
1118
1133
  Layout/RedundantLineBreak:
@@ -1612,7 +1627,7 @@ Lint/EmptyBlock:
1612
1627
  Description: 'This cop checks for blocks without a body.'
1613
1628
  Enabled: pending
1614
1629
  VersionAdded: '1.1'
1615
- VersionChanged: '1.3'
1630
+ VersionChanged: '1.15'
1616
1631
  AllowComments: true
1617
1632
  AllowEmptyLambdas: true
1618
1633
 
@@ -1645,6 +1660,12 @@ Lint/EmptyFile:
1645
1660
  AllowComments: true
1646
1661
  VersionAdded: '0.90'
1647
1662
 
1663
+ Lint/EmptyInPattern:
1664
+ Description: 'Checks for the presence of `in` pattern branches without a body.'
1665
+ Enabled: pending
1666
+ AllowComments: true
1667
+ VersionAdded: '1.16'
1668
+
1648
1669
  Lint/EmptyInterpolation:
1649
1670
  Description: 'Checks for empty string interpolation.'
1650
1671
  Enabled: true
@@ -2092,6 +2113,7 @@ Lint/SymbolConversion:
2092
2113
  Description: 'Checks for unnecessary symbol conversions.'
2093
2114
  Enabled: pending
2094
2115
  VersionAdded: '1.9'
2116
+ VersionChanged: '1.16'
2095
2117
  EnforcedStyle: strict
2096
2118
  SupportedStyles:
2097
2119
  - strict
@@ -2512,6 +2534,36 @@ Naming/HeredocDelimiterNaming:
2512
2534
  ForbiddenDelimiters:
2513
2535
  - !ruby/regexp '/(^|\s)(EO[A-Z]{1}|END)(\s|$)/'
2514
2536
 
2537
+ Naming/InclusiveLanguage:
2538
+ Description: 'Recommend the use of inclusive language instead of problematic terms.'
2539
+ Enabled: pending
2540
+ VersionAdded: '1.18'
2541
+ CheckIdentifiers: true
2542
+ CheckConstants: true
2543
+ CheckVariables: true
2544
+ CheckStrings: true
2545
+ CheckSymbols: true
2546
+ CheckComments: true
2547
+ CheckFilepaths: true
2548
+ FlaggedTerms:
2549
+ whitelist:
2550
+ Regex: !ruby/regexp '/white[-_\s]?list/'
2551
+ Suggestions:
2552
+ - allowlist
2553
+ - permit
2554
+ blacklist:
2555
+ Regex: !ruby/regexp '/black[-_\s]?list/'
2556
+ Suggestions:
2557
+ - denylist
2558
+ - block
2559
+ master:
2560
+ Suggestions: ['main', 'primary', 'leader']
2561
+ AllowedRegex:
2562
+ - 'Master of None'
2563
+ - 'Master Boot Record'
2564
+ slave:
2565
+ Suggestions: ['replica', 'secondary', 'follower']
2566
+
2515
2567
  Naming/MemoizedInstanceVariableName:
2516
2568
  Description: >-
2517
2569
  Memoized method name should match memo instance variable name.
@@ -3480,6 +3532,7 @@ Style/HashAsLastArrayItem:
3480
3532
 
3481
3533
  Style/HashConversion:
3482
3534
  Description: 'Avoid Hash[] in favor of ary.to_h or literal hashes.'
3535
+ StyleGuide: '#avoid-hash-constructor'
3483
3536
  Enabled: pending
3484
3537
  VersionAdded: '1.10'
3485
3538
  VersionChanged: '1.11'
@@ -3489,8 +3542,10 @@ Style/HashEachMethods:
3489
3542
  Description: 'Use Hash#each_key and Hash#each_value.'
3490
3543
  StyleGuide: '#hash-each'
3491
3544
  Enabled: true
3492
- VersionAdded: '0.80'
3493
3545
  Safe: false
3546
+ VersionAdded: '0.80'
3547
+ VersionChanged: '1.16'
3548
+ AllowedReceivers: []
3494
3549
 
3495
3550
  Style/HashExcept:
3496
3551
  Description: >-
@@ -3553,6 +3608,7 @@ Style/IdenticalConditionalBranches:
3553
3608
  out of the conditional.
3554
3609
  Enabled: true
3555
3610
  VersionAdded: '0.36'
3611
+ VersionChanged: '1.16'
3556
3612
 
3557
3613
  Style/IfInsideElse:
3558
3614
  Description: 'Finds if nodes inside else, which can be converted to elsif.'
@@ -3599,6 +3655,12 @@ Style/ImplicitRuntimeError:
3599
3655
  Enabled: false
3600
3656
  VersionAdded: '0.41'
3601
3657
 
3658
+ Style/InPatternThen:
3659
+ Description: 'Checks for `in;` uses in `case` expressions.'
3660
+ StyleGuide: '#no-in-pattern-semicolons'
3661
+ Enabled: pending
3662
+ VersionAdded: '1.16'
3663
+
3602
3664
  Style/InfiniteLoop:
3603
3665
  Description: >-
3604
3666
  Use Kernel#loop for infinite loops.
@@ -3827,6 +3889,12 @@ Style/MultilineIfThen:
3827
3889
  VersionAdded: '0.9'
3828
3890
  VersionChanged: '0.26'
3829
3891
 
3892
+ Style/MultilineInPatternThen:
3893
+ Description: 'Do not use `then` for multi-line `in` statement.'
3894
+ StyleGuide: '#no-then'
3895
+ Enabled: pending
3896
+ VersionAdded: '1.16'
3897
+
3830
3898
  Style/MultilineMemoization:
3831
3899
  Description: 'Wrap multiline memoizations in a `begin` and `end` block.'
3832
3900
  Enabled: true
@@ -3998,6 +4066,7 @@ Style/NilLambda:
3998
4066
  Description: 'Prefer `-> {}` to `-> { nil }`.'
3999
4067
  Enabled: pending
4000
4068
  VersionAdded: '1.3'
4069
+ VersionChanged: '1.15'
4001
4070
 
4002
4071
  Style/NonNilCheck:
4003
4072
  Description: 'Checks for redundant nil checks.'
@@ -4184,6 +4253,16 @@ Style/Proc:
4184
4253
  VersionAdded: '0.9'
4185
4254
  VersionChanged: '0.18'
4186
4255
 
4256
+ Style/QuotedSymbols:
4257
+ Description: 'Use a consistent style for quoted symbols.'
4258
+ Enabled: pending
4259
+ VersionAdded: '1.16'
4260
+ EnforcedStyle: same_as_string_literals
4261
+ SupportedStyles:
4262
+ - same_as_string_literals
4263
+ - single_quotes
4264
+ - double_quotes
4265
+
4187
4266
  Style/RaiseArgs:
4188
4267
  Description: 'Checks the arguments passed to raise/fail.'
4189
4268
  StyleGuide: '#exception-class-messages'
@@ -4541,7 +4620,8 @@ Style/StringConcatenation:
4541
4620
  Enabled: true
4542
4621
  Safe: false
4543
4622
  VersionAdded: '0.89'
4544
- VersionChanged: '1.6'
4623
+ VersionChanged: '1.18'
4624
+ Mode: aggressive
4545
4625
 
4546
4626
  Style/StringHashKeys:
4547
4627
  Description: 'Prefer symbols instead of strings as hash keys.'
@@ -4651,6 +4731,12 @@ Style/TernaryParentheses:
4651
4731
  - require_parentheses_when_complex
4652
4732
  AllowSafeAssignment: true
4653
4733
 
4734
+ Style/TopLevelMethodDefinition:
4735
+ Description: 'This cop looks for top-level method definitions.'
4736
+ StyleGuide: '#top-level-methods'
4737
+ Enabled: false
4738
+ VersionAdded: '1.15'
4739
+
4654
4740
  Style/TrailingBodyOnClass:
4655
4741
  Description: 'Class body goes below class statement.'
4656
4742
  Enabled: true
@@ -4737,7 +4823,7 @@ Style/TrivialAccessors:
4737
4823
  StyleGuide: '#attr_family'
4738
4824
  Enabled: true
4739
4825
  VersionAdded: '0.9'
4740
- VersionChanged: '0.77'
4826
+ VersionChanged: '1.15'
4741
4827
  # When set to `false` the cop will suggest the use of accessor methods
4742
4828
  # in situations like:
4743
4829
  #
@@ -4756,7 +4842,7 @@ Style/TrivialAccessors:
4756
4842
  # on_exception :restart
4757
4843
  #
4758
4844
  # Commonly used in DSLs
4759
- AllowDSLWriters: false
4845
+ AllowDSLWriters: true
4760
4846
  IgnoreClassMethods: false
4761
4847
  AllowedMethods:
4762
4848
  - to_ary
data/lib/rubocop.rb CHANGED
@@ -119,6 +119,7 @@ require_relative 'rubocop/cop/mixin/surrounding_space'
119
119
  require_relative 'rubocop/cop/mixin/statement_modifier'
120
120
  require_relative 'rubocop/cop/mixin/string_help'
121
121
  require_relative 'rubocop/cop/mixin/string_literals_help'
122
+ require_relative 'rubocop/cop/mixin/symbol_help'
122
123
  require_relative 'rubocop/cop/mixin/target_ruby_version'
123
124
  require_relative 'rubocop/cop/mixin/trailing_body'
124
125
  require_relative 'rubocop/cop/mixin/trailing_comma'
@@ -210,6 +211,7 @@ require_relative 'rubocop/cop/layout/indentation_width'
210
211
  require_relative 'rubocop/cop/layout/initial_indentation'
211
212
  require_relative 'rubocop/cop/layout/leading_comment_space'
212
213
  require_relative 'rubocop/cop/layout/leading_empty_lines'
214
+ require_relative 'rubocop/cop/layout/line_end_string_concatenation_indentation'
213
215
  require_relative 'rubocop/cop/layout/line_length'
214
216
  require_relative 'rubocop/cop/layout/multiline_array_brace_layout'
215
217
  require_relative 'rubocop/cop/layout/multiline_array_line_breaks'
@@ -287,6 +289,7 @@ require_relative 'rubocop/cop/lint/empty_conditional_body'
287
289
  require_relative 'rubocop/cop/lint/empty_ensure'
288
290
  require_relative 'rubocop/cop/lint/empty_expression'
289
291
  require_relative 'rubocop/cop/lint/empty_file'
292
+ require_relative 'rubocop/cop/lint/empty_in_pattern'
290
293
  require_relative 'rubocop/cop/lint/empty_interpolation'
291
294
  require_relative 'rubocop/cop/lint/empty_when'
292
295
  require_relative 'rubocop/cop/lint/ensure_return'
@@ -398,6 +401,7 @@ require_relative 'rubocop/cop/naming/constant_name'
398
401
  require_relative 'rubocop/cop/naming/file_name'
399
402
  require_relative 'rubocop/cop/naming/heredoc_delimiter_case'
400
403
  require_relative 'rubocop/cop/naming/heredoc_delimiter_naming'
404
+ require_relative 'rubocop/cop/naming/inclusive_language'
401
405
  require_relative 'rubocop/cop/naming/memoized_instance_variable_name'
402
406
  require_relative 'rubocop/cop/naming/method_name'
403
407
  require_relative 'rubocop/cop/naming/method_parameter_name'
@@ -490,6 +494,7 @@ require_relative 'rubocop/cop/style/if_unless_modifier_of_if_unless'
490
494
  require_relative 'rubocop/cop/style/if_with_boolean_literal_branches'
491
495
  require_relative 'rubocop/cop/style/if_with_semicolon'
492
496
  require_relative 'rubocop/cop/style/implicit_runtime_error'
497
+ require_relative 'rubocop/cop/style/in_pattern_then'
493
498
  require_relative 'rubocop/cop/style/infinite_loop'
494
499
  require_relative 'rubocop/cop/style/inverse_methods'
495
500
  require_relative 'rubocop/cop/style/inline_comment'
@@ -500,6 +505,7 @@ require_relative 'rubocop/cop/style/lambda_call'
500
505
  require_relative 'rubocop/cop/style/line_end_concatenation'
501
506
  require_relative 'rubocop/cop/style/method_call_without_args_parentheses'
502
507
  require_relative 'rubocop/cop/style/method_call_with_args_parentheses'
508
+ require_relative 'rubocop/cop/style/multiline_in_pattern_then'
503
509
  require_relative 'rubocop/cop/style/redundant_assignment'
504
510
  require_relative 'rubocop/cop/style/redundant_fetch_block'
505
511
  require_relative 'rubocop/cop/style/redundant_file_extension_in_require'
@@ -550,6 +556,7 @@ require_relative 'rubocop/cop/style/percent_q_literals'
550
556
  require_relative 'rubocop/cop/style/perl_backrefs'
551
557
  require_relative 'rubocop/cop/style/preferred_hash_methods'
552
558
  require_relative 'rubocop/cop/style/proc'
559
+ require_relative 'rubocop/cop/style/quoted_symbols'
553
560
  require_relative 'rubocop/cop/style/raise_args'
554
561
  require_relative 'rubocop/cop/style/random_with_offset'
555
562
  require_relative 'rubocop/cop/style/redundant_argument'
@@ -598,6 +605,7 @@ require_relative 'rubocop/cop/style/symbol_array'
598
605
  require_relative 'rubocop/cop/style/symbol_literal'
599
606
  require_relative 'rubocop/cop/style/symbol_proc'
600
607
  require_relative 'rubocop/cop/style/ternary_parentheses'
608
+ require_relative 'rubocop/cop/style/top_level_method_definition'
601
609
  require_relative 'rubocop/cop/style/trailing_body_on_class'
602
610
  require_relative 'rubocop/cop/style/trailing_body_on_method_definition'
603
611
  require_relative 'rubocop/cop/style/trailing_body_on_module'