rubocop 1.57.2 → 1.62.1

Sign up to get free protection for your applications and to get access to all the features.
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'