rubocop 1.57.2 → 1.62.1

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.
Files changed (188) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +1 -1
  3. data/README.md +4 -4
  4. data/assets/output.css.erb +159 -0
  5. data/assets/output.html.erb +1 -160
  6. data/config/default.yml +87 -15
  7. data/lib/rubocop/cli/command/auto_generate_config.rb +12 -3
  8. data/lib/rubocop/cli/command/lsp.rb +2 -2
  9. data/lib/rubocop/cli.rb +6 -1
  10. data/lib/rubocop/config.rb +4 -2
  11. data/lib/rubocop/config_finder.rb +12 -2
  12. data/lib/rubocop/config_loader.rb +0 -1
  13. data/lib/rubocop/config_obsoletion.rb +11 -8
  14. data/lib/rubocop/config_validator.rb +14 -7
  15. data/lib/rubocop/cop/autocorrect_logic.rb +6 -1
  16. data/lib/rubocop/cop/base.rb +17 -2
  17. data/lib/rubocop/cop/bundler/gem_comment.rb +2 -2
  18. data/lib/rubocop/cop/correctors/each_to_for_corrector.rb +4 -8
  19. data/lib/rubocop/cop/correctors/for_to_each_corrector.rb +5 -13
  20. data/lib/rubocop/cop/exclude_limit.rb +1 -1
  21. data/lib/rubocop/cop/gemspec/deprecated_attribute_assignment.rb +2 -2
  22. data/lib/rubocop/cop/gemspec/required_ruby_version.rb +5 -1
  23. data/lib/rubocop/cop/internal_affairs/example_description.rb +4 -4
  24. data/lib/rubocop/cop/internal_affairs/method_name_end_with.rb +8 -6
  25. data/lib/rubocop/cop/internal_affairs/method_name_equal.rb +19 -20
  26. data/lib/rubocop/cop/internal_affairs/node_first_or_last_argument.rb +53 -0
  27. data/lib/rubocop/cop/internal_affairs/node_matcher_directive.rb +123 -29
  28. data/lib/rubocop/cop/internal_affairs/redundant_expect_offense_arguments.rb +34 -0
  29. data/lib/rubocop/cop/internal_affairs.rb +2 -0
  30. data/lib/rubocop/cop/layout/argument_alignment.rb +1 -1
  31. data/lib/rubocop/cop/layout/empty_line_after_magic_comment.rb +14 -7
  32. data/lib/rubocop/cop/layout/end_alignment.rb +8 -2
  33. data/lib/rubocop/cop/layout/extra_spacing.rb +4 -10
  34. data/lib/rubocop/cop/layout/first_array_element_indentation.rb +22 -7
  35. data/lib/rubocop/cop/layout/first_parameter_indentation.rb +1 -1
  36. data/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +2 -2
  37. data/lib/rubocop/cop/layout/heredoc_indentation.rb +1 -1
  38. data/lib/rubocop/cop/layout/line_continuation_leading_space.rb +1 -1
  39. data/lib/rubocop/cop/layout/redundant_line_break.rb +16 -3
  40. data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +4 -4
  41. data/lib/rubocop/cop/layout/single_line_block_chain.rb +5 -0
  42. data/lib/rubocop/cop/layout/space_around_operators.rb +50 -20
  43. data/lib/rubocop/cop/layout/space_before_block_braces.rb +19 -10
  44. data/lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb +1 -1
  45. data/lib/rubocop/cop/lint/assignment_in_condition.rb +4 -4
  46. data/lib/rubocop/cop/lint/binary_operator_with_identical_operands.rb +2 -2
  47. data/lib/rubocop/cop/lint/constant_overwritten_in_rescue.rb +1 -1
  48. data/lib/rubocop/cop/lint/debugger.rb +2 -1
  49. data/lib/rubocop/cop/lint/duplicate_methods.rb +1 -1
  50. data/lib/rubocop/cop/lint/empty_conditional_body.rb +1 -1
  51. data/lib/rubocop/cop/lint/erb_new_arguments.rb +3 -3
  52. data/lib/rubocop/cop/lint/float_comparison.rb +10 -0
  53. data/lib/rubocop/cop/lint/hash_compare_by_identity.rb +2 -1
  54. data/lib/rubocop/cop/lint/it_without_arguments_in_block.rb +56 -0
  55. data/lib/rubocop/cop/lint/literal_assignment_in_condition.rb +85 -0
  56. data/lib/rubocop/cop/lint/next_without_accumulator.rb +6 -21
  57. data/lib/rubocop/cop/lint/non_deterministic_require_order.rb +3 -5
  58. data/lib/rubocop/cop/lint/number_conversion.rb +9 -4
  59. data/lib/rubocop/cop/lint/redundant_safe_navigation.rb +54 -6
  60. data/lib/rubocop/cop/lint/redundant_with_index.rb +3 -2
  61. data/lib/rubocop/cop/lint/redundant_with_object.rb +2 -2
  62. data/lib/rubocop/cop/lint/rescue_type.rb +1 -3
  63. data/lib/rubocop/cop/lint/safe_navigation_chain.rb +3 -4
  64. data/lib/rubocop/cop/lint/script_permission.rb +3 -3
  65. data/lib/rubocop/cop/lint/self_assignment.rb +38 -0
  66. data/lib/rubocop/cop/lint/shadowed_argument.rb +1 -0
  67. data/lib/rubocop/cop/lint/symbol_conversion.rb +7 -2
  68. data/lib/rubocop/cop/lint/syntax.rb +6 -3
  69. data/lib/rubocop/cop/lint/to_enum_arguments.rb +7 -2
  70. data/lib/rubocop/cop/lint/trailing_comma_in_attribute_declaration.rb +1 -1
  71. data/lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb +2 -2
  72. data/lib/rubocop/cop/lint/useless_access_modifier.rb +2 -2
  73. data/lib/rubocop/cop/lint/useless_times.rb +2 -2
  74. data/lib/rubocop/cop/lint/void.rb +20 -2
  75. data/lib/rubocop/cop/metrics/abc_size.rb +3 -3
  76. data/lib/rubocop/cop/mixin/check_line_breakable.rb +1 -1
  77. data/lib/rubocop/cop/mixin/configurable_formatting.rb +1 -0
  78. data/lib/rubocop/cop/mixin/multiline_expression_indentation.rb +1 -1
  79. data/lib/rubocop/cop/mixin/preceding_following_alignment.rb +1 -1
  80. data/lib/rubocop/cop/mixin/space_before_punctuation.rb +1 -1
  81. data/lib/rubocop/cop/naming/block_forwarding.rb +12 -4
  82. data/lib/rubocop/cop/naming/constant_name.rb +1 -2
  83. data/lib/rubocop/cop/naming/memoized_instance_variable_name.rb +1 -1
  84. data/lib/rubocop/cop/naming/predicate_name.rb +2 -2
  85. data/lib/rubocop/cop/registry.rb +1 -1
  86. data/lib/rubocop/cop/security/open.rb +2 -2
  87. data/lib/rubocop/cop/style/access_modifier_declarations.rb +2 -2
  88. data/lib/rubocop/cop/style/accessor_grouping.rb +1 -1
  89. data/lib/rubocop/cop/style/arguments_forwarding.rb +152 -21
  90. data/lib/rubocop/cop/style/array_first_last.rb +64 -0
  91. data/lib/rubocop/cop/style/auto_resource_cleanup.rb +21 -14
  92. data/lib/rubocop/cop/style/bisected_attr_accessor.rb +2 -2
  93. data/lib/rubocop/cop/style/case_like_if.rb +5 -5
  94. data/lib/rubocop/cop/style/class_check.rb +1 -0
  95. data/lib/rubocop/cop/style/class_vars.rb +3 -3
  96. data/lib/rubocop/cop/style/collection_compact.rb +18 -8
  97. data/lib/rubocop/cop/style/combinable_loops.rb +13 -7
  98. data/lib/rubocop/cop/style/commented_keyword.rb +5 -2
  99. data/lib/rubocop/cop/style/concat_array_literals.rb +1 -0
  100. data/lib/rubocop/cop/style/conditional_assignment.rb +6 -7
  101. data/lib/rubocop/cop/style/date_time.rb +5 -4
  102. data/lib/rubocop/cop/style/each_for_simple_loop.rb +7 -7
  103. data/lib/rubocop/cop/style/each_with_object.rb +2 -2
  104. data/lib/rubocop/cop/style/empty_literal.rb +1 -1
  105. data/lib/rubocop/cop/style/eval_with_location.rb +3 -14
  106. data/lib/rubocop/cop/style/exact_regexp_match.rb +2 -1
  107. data/lib/rubocop/cop/style/explicit_block_argument.rb +2 -2
  108. data/lib/rubocop/cop/style/for.rb +2 -0
  109. data/lib/rubocop/cop/style/hash_each_methods.rb +105 -11
  110. data/lib/rubocop/cop/style/hash_except.rb +2 -1
  111. data/lib/rubocop/cop/style/hash_syntax.rb +6 -2
  112. data/lib/rubocop/cop/style/identical_conditional_branches.rb +4 -1
  113. data/lib/rubocop/cop/style/inverse_methods.rb +14 -13
  114. data/lib/rubocop/cop/style/invertible_unless_condition.rb +44 -2
  115. data/lib/rubocop/cop/style/map_compact_with_conditional_block.rb +8 -10
  116. data/lib/rubocop/cop/style/map_to_hash.rb +17 -7
  117. data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +14 -5
  118. data/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +2 -4
  119. data/lib/rubocop/cop/style/method_call_without_args_parentheses.rb +20 -0
  120. data/lib/rubocop/cop/style/method_def_parentheses.rb +1 -1
  121. data/lib/rubocop/cop/style/missing_respond_to_missing.rb +2 -2
  122. data/lib/rubocop/cop/style/multiline_method_signature.rb +10 -1
  123. data/lib/rubocop/cop/style/multiline_ternary_operator.rb +5 -3
  124. data/lib/rubocop/cop/style/next.rb +1 -1
  125. data/lib/rubocop/cop/style/nil_comparison.rb +2 -0
  126. data/lib/rubocop/cop/style/numeric_literal_prefix.rb +1 -1
  127. data/lib/rubocop/cop/style/object_then.rb +5 -3
  128. data/lib/rubocop/cop/style/operator_method_call.rb +2 -2
  129. data/lib/rubocop/cop/style/parallel_assignment.rb +3 -5
  130. data/lib/rubocop/cop/style/parentheses_around_condition.rb +8 -0
  131. data/lib/rubocop/cop/style/raise_args.rb +4 -1
  132. data/lib/rubocop/cop/style/redundant_argument.rb +4 -3
  133. data/lib/rubocop/cop/style/redundant_assignment.rb +10 -2
  134. data/lib/rubocop/cop/style/redundant_current_directory_in_path.rb +4 -3
  135. data/lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb +3 -3
  136. data/lib/rubocop/cop/style/redundant_each.rb +7 -4
  137. data/lib/rubocop/cop/style/redundant_fetch_block.rb +3 -3
  138. data/lib/rubocop/cop/style/redundant_line_continuation.rb +27 -7
  139. data/lib/rubocop/cop/style/redundant_parentheses.rb +33 -10
  140. data/lib/rubocop/cop/style/redundant_return.rb +7 -1
  141. data/lib/rubocop/cop/style/redundant_self.rb +17 -2
  142. data/lib/rubocop/cop/style/redundant_sort.rb +9 -8
  143. data/lib/rubocop/cop/style/redundant_sort_by.rb +2 -2
  144. data/lib/rubocop/cop/style/redundant_string_escape.rb +1 -1
  145. data/lib/rubocop/cop/style/sample.rb +3 -4
  146. data/lib/rubocop/cop/style/select_by_regexp.rb +7 -6
  147. data/lib/rubocop/cop/style/self_assignment.rb +1 -1
  148. data/lib/rubocop/cop/style/semicolon.rb +8 -0
  149. data/lib/rubocop/cop/style/single_argument_dig.rb +5 -2
  150. data/lib/rubocop/cop/style/slicing_with_range.rb +76 -10
  151. data/lib/rubocop/cop/style/string_chars.rb +1 -0
  152. data/lib/rubocop/cop/style/strip.rb +7 -4
  153. data/lib/rubocop/cop/style/super_with_args_parentheses.rb +35 -0
  154. data/lib/rubocop/cop/style/symbol_proc.rb +36 -0
  155. data/lib/rubocop/cop/style/unpack_first.rb +11 -14
  156. data/lib/rubocop/cop/utils/regexp_ranges.rb +1 -1
  157. data/lib/rubocop/cops_documentation_generator.rb +15 -3
  158. data/lib/rubocop/directive_comment.rb +10 -8
  159. data/lib/rubocop/ext/regexp_node.rb +9 -4
  160. data/lib/rubocop/formatter/disabled_config_formatter.rb +17 -6
  161. data/lib/rubocop/formatter/html_formatter.rb +31 -12
  162. data/lib/rubocop/formatter/json_formatter.rb +0 -1
  163. data/lib/rubocop/formatter/offense_count_formatter.rb +12 -2
  164. data/lib/rubocop/formatter.rb +1 -1
  165. data/lib/rubocop/lsp/logger.rb +1 -1
  166. data/lib/rubocop/lsp/routes.rb +2 -2
  167. data/lib/rubocop/lsp/runtime.rb +1 -1
  168. data/lib/rubocop/lsp/server.rb +5 -2
  169. data/lib/rubocop/lsp/severity.rb +1 -1
  170. data/lib/rubocop/lsp.rb +29 -0
  171. data/lib/rubocop/magic_comment.rb +1 -1
  172. data/lib/rubocop/options.rb +11 -8
  173. data/lib/rubocop/path_util.rb +6 -2
  174. data/lib/rubocop/result_cache.rb +0 -1
  175. data/lib/rubocop/rspec/cop_helper.rb +8 -2
  176. data/lib/rubocop/rspec/expect_offense.rb +8 -8
  177. data/lib/rubocop/rspec/shared_contexts.rb +40 -15
  178. data/lib/rubocop/rspec/support.rb +2 -0
  179. data/lib/rubocop/runner.rb +10 -3
  180. data/lib/rubocop/server/cache.rb +1 -2
  181. data/lib/rubocop/server/client_command/exec.rb +0 -1
  182. data/lib/rubocop/server/server_command/exec.rb +0 -1
  183. data/lib/rubocop/target_finder.rb +84 -78
  184. data/lib/rubocop/target_ruby.rb +82 -80
  185. data/lib/rubocop/version.rb +18 -3
  186. data/lib/rubocop.rb +4 -0
  187. metadata +18 -10
  188. /data/lib/rubocop/formatter/{git_hub_actions_formatter.rb → github_actions_formatter.rb} +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: adf1db90b03283f492e0e10f234d54d6efc215a8b182965087313e3954d533dd
4
- data.tar.gz: fa84dfd9d61e4834df9287e0ba0619622f4b7eb9e229e8de1172bc1742c04df5
3
+ metadata.gz: 8daa4ef7dd74b8608039d7dfda5f1e3fe739738949390a6f1347acaccf7bd1c4
4
+ data.tar.gz: 271a978db956def596a5b06a7fd69d189d807b27db0acdda03fd6200b95ef541
5
5
  SHA512:
6
- metadata.gz: 44a683eed5e4b9d26caf4d0c775a6f4ba00960b6aaeee29c3f610320d1471326d650e8fc41ee2725af07b4e6a50bf17d442232134522709ebb2a46ec5b80bf40
7
- data.tar.gz: d4f5dda0dbf7689c55b39de3922c2bd1a0c40aa62ac1046f06c98a19e7f2719cfea11babd480ba4e9b9ff2203d20422a51f096165d5919bf564e009c3a91c087
6
+ metadata.gz: 484294f43781f114ba01470b22331ef17648219e26dc4ba2f28073f609c909af2997c47e1f1aad62860124f6f4594a2e536cd793f05352a78d588f979732a290
7
+ data.tar.gz: 6a8313e61422bcd568eea747c0f9a88f61f50620b4dd4f478da0bdd3e067c1aa8bcf70e15744e02118d4c525eb0632fae3cc19caf73db6db1f63ea76dbb84b45
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2012-23 Bozhidar Batsov
1
+ Copyright (c) 2012-24 Bozhidar Batsov
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <img src="https://raw.githubusercontent.com/rubocop/rubocop/master/logo/rubo-logo-horizontal.png" alt="RuboCop Logo"/>
2
+ <img src="https://raw.githubusercontent.com/rubocop/rubocop/master/logo/rubo-logo-horizontal-white.png" alt="RuboCop Logo"/>
3
3
  </p>
4
4
 
5
5
  ----------
@@ -53,7 +53,7 @@ To prevent an unwanted RuboCop update you might want to use a conservative versi
53
53
  in your `Gemfile`:
54
54
 
55
55
  ```rb
56
- gem 'rubocop', '~> 1.57', require: false
56
+ gem 'rubocop', '~> 1.62', require: false
57
57
  ```
58
58
 
59
59
  See [our versioning policy](https://docs.rubocop.org/rubocop/versioning.html) for further details.
@@ -67,7 +67,7 @@ $ cd my/cool/ruby/project
67
67
  $ rubocop
68
68
  ```
69
69
 
70
- You can also use this magic in your favorite editor with RuboCop's [built-in LSP](https://docs.rubocop.org/rubocop/usage/lsp.html).
70
+ You can also use this magic in your favorite editor with RuboCop's [built-in LSP server](https://docs.rubocop.org/rubocop/usage/lsp.html).
71
71
 
72
72
  ## Documentation
73
73
 
@@ -248,5 +248,5 @@ RuboCop's changelog is available [here](CHANGELOG.md).
248
248
 
249
249
  ## Copyright
250
250
 
251
- Copyright (c) 2012-2023 Bozhidar Batsov. See [LICENSE.txt](LICENSE.txt) for
251
+ Copyright (c) 2012-2024 Bozhidar Batsov. See [LICENSE.txt](LICENSE.txt) for
252
252
  further details.
@@ -0,0 +1,159 @@
1
+ * {
2
+ -webkit-box-sizing: border-box;
3
+ -moz-box-sizing: border-box;
4
+ box-sizing: border-box;
5
+ }
6
+
7
+ body, html {
8
+ font-size: 62.5%;
9
+ }
10
+ body {
11
+ background-color: #ecedf0;
12
+ font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
13
+ margin: 0;
14
+ }
15
+ code {
16
+ font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
17
+ font-size: 85%;
18
+ }
19
+ #header {
20
+ background: #f9f9f9;
21
+ color: #333;
22
+ border-bottom: 3px solid #ccc;
23
+ height: 50px;
24
+ padding: 0;
25
+ }
26
+ #header .logo {
27
+ float: left;
28
+ margin: 5px 12px 7px 20px;
29
+ width: 38px;
30
+ height: 38px;
31
+ }
32
+ #header .title {
33
+ display: inline-block;
34
+ float: left;
35
+ height: 50px;
36
+ font-size: 2.4rem;
37
+ letter-spacing: normal;
38
+ line-height: 50px;
39
+ margin: 0;
40
+ }
41
+
42
+ .information, #offenses {
43
+ width: 100%;
44
+ padding: 20px;
45
+ color: #333;
46
+ }
47
+ #offenses {
48
+ padding: 0 20px;
49
+ }
50
+
51
+ .information .infobox {
52
+ border-left: 3px solid;
53
+ border-radius: 4px;
54
+ background-color: #fff;
55
+ -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
56
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
57
+ padding: 15px;
58
+ border-color: #0088cc;
59
+ font-size: 1.4rem;
60
+ }
61
+ .information .infobox .info-title {
62
+ font-size: 1.8rem;
63
+ line-height: 2.2rem;
64
+ margin: 0 0 0.5em;
65
+ }
66
+ .information .offenses-list li {
67
+ line-height: 1.8rem
68
+ }
69
+ .information .offenses-list {
70
+ padding-left: 20px;
71
+ margin-bottom: 0;
72
+ }
73
+
74
+ #offenses .offense-box {
75
+ border-radius: 4px;
76
+ margin-bottom: 20px;
77
+ background-color: #fff;
78
+ -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
79
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
80
+ }
81
+ .fixed .box-title {
82
+ position: fixed;
83
+ top: 0;
84
+ z-index: 10;
85
+ width: 100%;
86
+ }
87
+ .box-title-placeholder {
88
+ display: none;
89
+ }
90
+ .fixed .box-title-placeholder {
91
+ display: block;
92
+ }
93
+ #offenses .offense-box .box-title h3, #offenses .offense-box .box-title-placeholder h3 {
94
+ color: #33353f;
95
+ background-color: #f6f6f6;
96
+ font-size: 2rem;
97
+ line-height: 2rem;
98
+ display: block;
99
+ padding: 15px;
100
+ border-radius: 5px;
101
+ margin: 0;
102
+ }
103
+ #offenses .offense-box .offense-reports {
104
+ padding: 0 15px;
105
+ }
106
+ #offenses .offense-box .offense-reports .report {
107
+ border-bottom: 1px dotted #ddd;
108
+ padding: 15px 0px;
109
+ position: relative;
110
+ font-size: 1.3rem;
111
+ }
112
+ #offenses .offense-box .offense-reports .report:last-child {
113
+ border-bottom: none;
114
+ }
115
+ #offenses .offense-box .offense-reports .report pre code {
116
+ display: block;
117
+ background: #000;
118
+ color: #fff;
119
+ padding: 10px 15px;
120
+ border-radius: 5px;
121
+ line-height: 1.6rem;
122
+ }
123
+ #offenses .offense-box .offense-reports .report .location {
124
+ font-weight: bold;
125
+ }
126
+ #offenses .offense-box .offense-reports .report .message code {
127
+ padding: 0.3em;
128
+ background-color: rgba(0,0,0,0.07);
129
+ border-radius: 3px;
130
+ }
131
+ .severity {
132
+ text-transform: capitalize;
133
+ font-weight: bold;
134
+ }
135
+ .highlight {
136
+ padding: 2px;
137
+ border-radius: 2px;
138
+ font-weight: bold;
139
+ }
140
+ <%- SEVERITY_COLORS.each do |severity, color| %>
141
+ .severity.<%= severity %> {
142
+ color: <%= color %>;
143
+ }
144
+ .highlight.<%= severity %> {
145
+ background-color: <%= color.fade_out(0.4) %>;
146
+ border: 1px solid <%= color.fade_out(0.6) %>;
147
+ }
148
+ <%- end %>
149
+ footer {
150
+ margin-bottom: 20px;
151
+ margin-right: 20px;
152
+ font-size: 1.3rem;
153
+ color: #777;
154
+ text-align: right;
155
+ }
156
+ .extra-code {
157
+ color: #ED9C28
158
+ }
159
+
@@ -3,168 +3,9 @@
3
3
  <head>
4
4
  <meta charset='UTF-8' />
5
5
  <title>RuboCop Inspection Report</title>
6
- <%# TODO: Clean up the messy markup and style definitions. %>
7
6
  <style>
8
- * {
9
- -webkit-box-sizing: border-box;
10
- -moz-box-sizing: border-box;
11
- box-sizing: border-box;
12
- }
13
-
14
- body, html {
15
- font-size: 62.5%;
16
- }
17
- body {
18
- background-color: #ecedf0;
19
- font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
20
- margin: 0;
21
- }
22
- code {
23
- font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
24
- font-size: 85%;
25
- }
26
- #header {
27
- background: #f9f9f9;
28
- color: #333;
29
- border-bottom: 3px solid #ccc;
30
- height: 50px;
31
- padding: 0;
32
- }
33
- #header .logo {
34
- float: left;
35
- margin: 5px 12px 7px 20px;
36
- width: 38px;
37
- height: 38px;
38
- }
39
- #header .title {
40
- display: inline-block;
41
- float: left;
42
- height: 50px;
43
- font-size: 2.4rem;
44
- letter-spacing: normal;
45
- line-height: 50px;
46
- margin: 0;
47
- }
48
-
49
- .information, #offenses {
50
- width: 100%;
51
- padding: 20px;
52
- color: #333;
53
- }
54
- #offenses {
55
- padding: 0 20px;
56
- }
57
-
58
- .information .infobox {
59
- border-left: 3px solid;
60
- border-radius: 4px;
61
- background-color: #fff;
62
- -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
63
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
64
- padding: 15px;
65
- border-color: #0088cc;
66
- font-size: 1.4rem;
67
- }
68
- .information .infobox .info-title {
69
- font-size: 1.8rem;
70
- line-height: 2.2rem;
71
- margin: 0 0 0.5em;
72
- }
73
- .information .offenses-list li {
74
- line-height: 1.8rem
75
- }
76
- .information .offenses-list {
77
- padding-left: 20px;
78
- margin-bottom: 0;
79
- }
80
-
81
- #offenses .offense-box {
82
- border-radius: 4px;
83
- margin-bottom: 20px;
84
- background-color: #fff;
85
- -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
86
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
87
- }
88
- .fixed .box-title {
89
- position: fixed;
90
- top: 0;
91
- z-index: 10;
92
- width: 100%;
93
- }
94
- .box-title-placeholder {
95
- display: none;
96
- }
97
- .fixed .box-title-placeholder {
98
- display: block;
99
- }
100
- #offenses .offense-box .box-title h3, #offenses .offense-box .box-title-placeholder h3 {
101
- color: #33353f;
102
- background-color: #f6f6f6;
103
- font-size: 2rem;
104
- line-height: 2rem;
105
- display: block;
106
- padding: 15px;
107
- border-radius: 5px;
108
- margin: 0;
109
- }
110
- #offenses .offense-box .offense-reports {
111
- padding: 0 15px;
112
- }
113
- #offenses .offense-box .offense-reports .report {
114
- border-bottom: 1px dotted #ddd;
115
- padding: 15px 0px;
116
- position: relative;
117
- font-size: 1.3rem;
118
- }
119
- #offenses .offense-box .offense-reports .report:last-child {
120
- border-bottom: none;
121
- }
122
- #offenses .offense-box .offense-reports .report pre code {
123
- display: block;
124
- background: #000;
125
- color: #fff;
126
- padding: 10px 15px;
127
- border-radius: 5px;
128
- line-height: 1.6rem;
129
- }
130
- #offenses .offense-box .offense-reports .report .location {
131
- font-weight: bold;
132
- }
133
- #offenses .offense-box .offense-reports .report .message code {
134
- padding: 0.3em;
135
- background-color: rgba(0,0,0,0.07);
136
- border-radius: 3px;
137
- }
138
- .severity {
139
- text-transform: capitalize;
140
- font-weight: bold;
141
- }
142
- .highlight {
143
- padding: 2px;
144
- border-radius: 2px;
145
- font-weight: bold;
146
- }
147
- <%- SEVERITY_COLORS.each do |severity, color| %>
148
- .severity.<%= severity %> {
149
- color: <%= color %>;
150
- }
151
- .highlight.<%= severity %> {
152
- background-color: <%= color.fade_out(0.4) %>;
153
- border: 1px solid <%= color.fade_out(0.6) %>;
154
- }
155
- <%- end %>
156
- footer {
157
- margin-bottom: 20px;
158
- margin-right: 20px;
159
- font-size: 1.3rem;
160
- color: #777;
161
- text-align: right;
162
- }
163
- .extra-code {
164
- color: #ED9C28
165
- }
7
+ <%= render_css %>
166
8
  </style>
167
-
168
9
  <script>
169
10
  (function() {
170
11
  // floating headers. requires classList support.
data/config/default.yml CHANGED
@@ -144,6 +144,12 @@ AllCops:
144
144
  # Ruby version is still unresolved, RuboCop will use the oldest officially
145
145
  # supported Ruby version (currently Ruby 2.7).
146
146
  TargetRubyVersion: ~
147
+ # You can specify the parser engine. There are two options available:
148
+ # - `parser_whitequark` ... https://github.com/whitequark/parser
149
+ # - `parser_prism` ... https://github.com/ruby/prism (`Prism::Translation::Parser`)
150
+ # By default, `parser` is used. For the `TargetRubyVersion` value, `parser` can be specified for versions `2.0` and above.
151
+ # `parser_prism` can be specified for versions `3.3` and above. `parser_prism` is faster but still considered experimental.
152
+ ParserEngine: parser_whitequark
147
153
  # Determines if a notification for extension libraries should be shown when
148
154
  # rubocop is run. Keys are the name of the extension, and values are an array
149
155
  # of gems in the Gemfile that the extension is suggested for, if not already
@@ -556,7 +562,9 @@ Layout/ElseAlignment:
556
562
  Layout/EmptyComment:
557
563
  Description: 'Checks empty comment.'
558
564
  Enabled: true
565
+ AutoCorrect: contextual
559
566
  VersionAdded: '0.53'
567
+ VersionChanged: '1.61'
560
568
  AllowBorderComment: true
561
569
  AllowMarginComment: true
562
570
 
@@ -1351,6 +1359,10 @@ Layout/SpaceAroundOperators:
1351
1359
  SupportedStylesForExponentOperator:
1352
1360
  - space
1353
1361
  - no_space
1362
+ EnforcedStyleForRationalLiterals: no_space
1363
+ SupportedStylesForRationalLiterals:
1364
+ - space
1365
+ - no_space
1354
1366
 
1355
1367
  Layout/SpaceBeforeBlockBraces:
1356
1368
  Description: >-
@@ -1821,16 +1833,18 @@ Lint/EmptyClass:
1821
1833
  Lint/EmptyConditionalBody:
1822
1834
  Description: 'Checks for the presence of `if`, `elsif` and `unless` branches without a body.'
1823
1835
  Enabled: true
1836
+ AutoCorrect: contextual
1824
1837
  SafeAutoCorrect: false
1825
1838
  AllowComments: true
1826
1839
  VersionAdded: '0.89'
1827
- VersionChanged: '1.34'
1840
+ VersionChanged: '1.61'
1828
1841
 
1829
1842
  Lint/EmptyEnsure:
1830
1843
  Description: 'Checks for empty ensure block.'
1831
1844
  Enabled: true
1845
+ AutoCorrect: contextual
1832
1846
  VersionAdded: '0.10'
1833
- VersionChanged: '0.48'
1847
+ VersionChanged: '1.61'
1834
1848
 
1835
1849
  Lint/EmptyExpression:
1836
1850
  Description: 'Checks for empty expressions.'
@@ -1852,8 +1866,9 @@ Lint/EmptyInPattern:
1852
1866
  Lint/EmptyInterpolation:
1853
1867
  Description: 'Checks for empty string interpolation.'
1854
1868
  Enabled: true
1869
+ AutoCorrect: contextual
1855
1870
  VersionAdded: '0.20'
1856
- VersionChanged: '0.45'
1871
+ VersionChanged: '1.61'
1857
1872
 
1858
1873
  Lint/EmptyWhen:
1859
1874
  Description: 'Checks for `when` branches with empty bodies.'
@@ -1959,6 +1974,12 @@ Lint/InterpolationCheck:
1959
1974
  VersionAdded: '0.50'
1960
1975
  VersionChanged: '1.40'
1961
1976
 
1977
+ Lint/ItWithoutArgumentsInBlock:
1978
+ Description: 'Checks uses of `it` calls without arguments in block.'
1979
+ Reference: 'https://bugs.ruby-lang.org/issues/18980'
1980
+ Enabled: pending
1981
+ VersionAdded: '1.59'
1982
+
1962
1983
  Lint/LambdaWithoutLiteralBlock:
1963
1984
  Description: 'Checks uses of lambda without a literal block.'
1964
1985
  Enabled: pending
@@ -1969,6 +1990,11 @@ Lint/LiteralAsCondition:
1969
1990
  Enabled: true
1970
1991
  VersionAdded: '0.51'
1971
1992
 
1993
+ Lint/LiteralAssignmentInCondition:
1994
+ Description: 'Checks for literal assignments in the conditions.'
1995
+ Enabled: pending
1996
+ VersionAdded: '1.58'
1997
+
1972
1998
  Lint/LiteralInInterpolation:
1973
1999
  Description: 'Checks for literals used in interpolation.'
1974
2000
  Enabled: true
@@ -2380,7 +2406,9 @@ Lint/TopLevelReturnWithArgument:
2380
2406
  Lint/TrailingCommaInAttributeDeclaration:
2381
2407
  Description: 'Checks for trailing commas in attribute declarations.'
2382
2408
  Enabled: true
2409
+ AutoCorrect: contextual
2383
2410
  VersionAdded: '0.90'
2411
+ VersionChanged: '1.61'
2384
2412
 
2385
2413
  Lint/TripleQuotes:
2386
2414
  Description: 'Checks for useless triple quote constructs.'
@@ -2440,8 +2468,9 @@ Lint/UnusedBlockArgument:
2440
2468
  Description: 'Checks for unused block arguments.'
2441
2469
  StyleGuide: '#underscore-unused-vars'
2442
2470
  Enabled: true
2471
+ AutoCorrect: contextual
2443
2472
  VersionAdded: '0.21'
2444
- VersionChanged: '0.22'
2473
+ VersionChanged: '1.61'
2445
2474
  IgnoreEmptyBlocks: true
2446
2475
  AllowUnusedKeywordArguments: false
2447
2476
 
@@ -2449,8 +2478,9 @@ Lint/UnusedMethodArgument:
2449
2478
  Description: 'Checks for unused method arguments.'
2450
2479
  StyleGuide: '#underscore-unused-vars'
2451
2480
  Enabled: true
2481
+ AutoCorrect: contextual
2452
2482
  VersionAdded: '0.21'
2453
- VersionChanged: '0.81'
2483
+ VersionChanged: '1.61'
2454
2484
  AllowUnusedKeywordArguments: false
2455
2485
  IgnoreEmptyMethods: true
2456
2486
  IgnoreNotImplementedMethods: true
@@ -2474,8 +2504,9 @@ Lint/UriRegexp:
2474
2504
  Lint/UselessAccessModifier:
2475
2505
  Description: 'Checks for useless access modifiers.'
2476
2506
  Enabled: true
2507
+ AutoCorrect: contextual
2477
2508
  VersionAdded: '0.20'
2478
- VersionChanged: '0.83'
2509
+ VersionChanged: '1.61'
2479
2510
  ContextCreatingMethods: []
2480
2511
  MethodCreatingMethods: []
2481
2512
 
@@ -2483,8 +2514,9 @@ Lint/UselessAssignment:
2483
2514
  Description: 'Checks for useless assignment to a local variable.'
2484
2515
  StyleGuide: '#underscore-unused-vars'
2485
2516
  Enabled: true
2517
+ AutoCorrect: contextual
2486
2518
  VersionAdded: '0.11'
2487
- VersionChanged: '1.51'
2519
+ VersionChanged: '1.61'
2488
2520
  SafeAutoCorrect: false
2489
2521
 
2490
2522
  Lint/UselessElseWithoutRescue:
@@ -2496,8 +2528,9 @@ Lint/UselessElseWithoutRescue:
2496
2528
  Lint/UselessMethodDefinition:
2497
2529
  Description: 'Checks for useless method definitions.'
2498
2530
  Enabled: true
2531
+ AutoCorrect: contextual
2499
2532
  VersionAdded: '0.90'
2500
- VersionChanged: '0.91'
2533
+ VersionChanged: '1.61'
2501
2534
  Safe: false
2502
2535
 
2503
2536
  Lint/UselessRescue:
@@ -2520,13 +2553,17 @@ Lint/UselessSetterCall:
2520
2553
  Lint/UselessTimes:
2521
2554
  Description: 'Checks for useless `Integer#times` calls.'
2522
2555
  Enabled: true
2523
- VersionAdded: '0.91'
2524
2556
  Safe: false
2557
+ AutoCorrect: contextual
2558
+ VersionAdded: '0.91'
2559
+ VersionChanged: '1.61'
2525
2560
 
2526
2561
  Lint/Void:
2527
2562
  Description: 'Possible use of operator/literal/variable in void context.'
2528
2563
  Enabled: true
2564
+ AutoCorrect: contextual
2529
2565
  VersionAdded: '0.9'
2566
+ VersionChanged: '1.61'
2530
2567
  CheckForMethodsWithNoSideEffects: false
2531
2568
 
2532
2569
  #################### Metrics ###############################
@@ -3085,7 +3122,19 @@ Style/ArgumentsForwarding:
3085
3122
  Enabled: pending
3086
3123
  AllowOnlyRestArgument: true
3087
3124
  UseAnonymousForwarding: true
3125
+ RedundantRestArgumentNames:
3126
+ - args
3127
+ - arguments
3128
+ RedundantKeywordRestArgumentNames:
3129
+ - kwargs
3130
+ - options
3131
+ - opts
3132
+ RedundantBlockArgumentNames:
3133
+ - blk
3134
+ - block
3135
+ - proc
3088
3136
  VersionAdded: '1.1'
3137
+ VersionChanged: '1.58'
3089
3138
 
3090
3139
  Style/ArrayCoercion:
3091
3140
  Description: >-
@@ -3096,6 +3145,13 @@ Style/ArrayCoercion:
3096
3145
  Enabled: false
3097
3146
  VersionAdded: '0.88'
3098
3147
 
3148
+ Style/ArrayFirstLast:
3149
+ Description: 'Use `arr.first` and `arr.last` instead of `arr[0]` and `arr[-1]`.'
3150
+ Reference: '#first-and-last'
3151
+ Enabled: false
3152
+ VersionAdded: '1.58'
3153
+ Safe: false
3154
+
3099
3155
  Style/ArrayIntersect:
3100
3156
  Description: 'Use `array1.intersect?(array2)` instead of `(array1 & array2).any?`.'
3101
3157
  Enabled: 'pending'
@@ -3667,8 +3723,9 @@ Style/EmptyCaseCondition:
3667
3723
  Style/EmptyElse:
3668
3724
  Description: 'Avoid empty else-clauses.'
3669
3725
  Enabled: true
3726
+ AutoCorrect: contextual
3670
3727
  VersionAdded: '0.28'
3671
- VersionChanged: '0.32'
3728
+ VersionChanged: '1.61'
3672
3729
  EnforcedStyle: both
3673
3730
  # empty - warn only on empty `else`
3674
3731
  # nil - warn on `else` with nil in it
@@ -3682,7 +3739,9 @@ Style/EmptyElse:
3682
3739
  Style/EmptyHeredoc:
3683
3740
  Description: 'Checks for using empty heredoc to reduce redundancy.'
3684
3741
  Enabled: pending
3742
+ AutoCorrect: contextual
3685
3743
  VersionAdded: '1.32'
3744
+ VersionChanged: '1.61'
3686
3745
 
3687
3746
  Style/EmptyLambdaParameter:
3688
3747
  Description: 'Omit parens for empty lambda parameters.'
@@ -3700,7 +3759,9 @@ Style/EmptyMethod:
3700
3759
  Description: 'Checks the formatting of empty method definitions.'
3701
3760
  StyleGuide: '#no-single-line-methods'
3702
3761
  Enabled: true
3762
+ AutoCorrect: contextual
3703
3763
  VersionAdded: '0.46'
3764
+ VersionChanged: '1.61'
3704
3765
  EnforcedStyle: compact
3705
3766
  SupportedStyles:
3706
3767
  - compact
@@ -4678,6 +4739,7 @@ Style/OperatorMethodCall:
4678
4739
 
4679
4740
  Style/OptionHash:
4680
4741
  Description: "Don't use option hashes when you can use keyword arguments."
4742
+ StyleGuide: '#keyword-arguments-vs-option-hashes'
4681
4743
  Enabled: false
4682
4744
  VersionAdded: '0.33'
4683
4745
  VersionChanged: '0.34'
@@ -4800,8 +4862,9 @@ Style/RaiseArgs:
4800
4862
  Description: 'Checks the arguments passed to raise/fail.'
4801
4863
  StyleGuide: '#exception-class-messages'
4802
4864
  Enabled: true
4865
+ Safe: false
4803
4866
  VersionAdded: '0.14'
4804
- VersionChanged: '1.2'
4867
+ VersionChanged: '1.61'
4805
4868
  EnforcedStyle: exploded
4806
4869
  SupportedStyles:
4807
4870
  - compact # raise Exception.new(msg)
@@ -4902,7 +4965,7 @@ Style/RedundantFetchBlock:
4902
4965
  Description: >-
4903
4966
  Use `fetch(key, value)` instead of `fetch(key) { value }`
4904
4967
  when value has Numeric, Rational, Complex, Symbol or String type, `false`, `true`, `nil` or is a constant.
4905
- Reference: 'https://github.com/JuanitoFatas/fast-ruby#hashfetch-with-argument-vs-hashfetch--block-code'
4968
+ Reference: 'https://github.com/fastruby/fast-ruby#hashfetch-with-argument-vs-hashfetch--block-code'
4906
4969
  Enabled: true
4907
4970
  Safe: false
4908
4971
  # If enabled, this cop will autocorrect usages of
@@ -4942,10 +5005,11 @@ Style/RedundantHeredocDelimiterQuotes:
4942
5005
  Style/RedundantInitialize:
4943
5006
  Description: 'Checks for redundant `initialize` methods.'
4944
5007
  Enabled: pending
5008
+ AutoCorrect: contextual
4945
5009
  Safe: false
4946
5010
  AllowComments: true
4947
5011
  VersionAdded: '1.27'
4948
- VersionChanged: '1.28'
5012
+ VersionChanged: '1.61'
4949
5013
 
4950
5014
  Style/RedundantInterpolation:
4951
5015
  Description: 'Checks for strings that are just an interpolated expression.'
@@ -5123,7 +5187,7 @@ Style/Sample:
5123
5187
  Description: >-
5124
5188
  Use `sample` instead of `shuffle.first`,
5125
5189
  `shuffle.last`, and `shuffle[Integer]`.
5126
- Reference: 'https://github.com/JuanitoFatas/fast-ruby#arrayshufflefirst-vs-arraysample-code'
5190
+ Reference: 'https://github.com/fastruby/fast-ruby#arrayshufflefirst-vs-arraysample-code'
5127
5191
  Enabled: true
5128
5192
  VersionAdded: '0.30'
5129
5193
 
@@ -5190,6 +5254,7 @@ Style/SingleLineBlockParams:
5190
5254
 
5191
5255
  Style/SingleLineDoEndBlock:
5192
5256
  Description: 'Checks for single-line `do`...`end` blocks.'
5257
+ StyleGuide: '#single-line-do-end-block'
5193
5258
  Enabled: pending
5194
5259
  VersionAdded: '1.57'
5195
5260
 
@@ -5202,7 +5267,8 @@ Style/SingleLineMethods:
5202
5267
  AllowIfMethodIsEmpty: true
5203
5268
 
5204
5269
  Style/SlicingWithRange:
5205
- Description: 'Checks array slicing is done with endless ranges when suitable.'
5270
+ Description: 'Checks array slicing is done with redundant, endless, and beginless ranges when suitable.'
5271
+ StyleGuide: '#slicing-with-ranges'
5206
5272
  Enabled: true
5207
5273
  VersionAdded: '0.83'
5208
5274
  Safe: false
@@ -5329,6 +5395,12 @@ Style/StructInheritance:
5329
5395
  VersionAdded: '0.29'
5330
5396
  VersionChanged: '1.20'
5331
5397
 
5398
+ Style/SuperWithArgsParentheses:
5399
+ Description: 'Use parentheses for `super` with arguments.'
5400
+ StyleGuide: '#super-with-args'
5401
+ Enabled: pending
5402
+ VersionAdded: '1.58'
5403
+
5332
5404
  Style/SwapValues:
5333
5405
  Description: 'Enforces the use of shorthand-style swapping of 2 variables.'
5334
5406
  StyleGuide: '#values-swapping'