rubocop 1.64.1 → 1.65.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/config/default.yml +11 -1
- data/lib/rubocop/config_loader.rb +1 -1
- data/lib/rubocop/config_loader_resolver.rb +9 -3
- data/lib/rubocop/cop/cop.rb +22 -4
- data/lib/rubocop/cop/gemspec/add_runtime_dependency.rb +38 -0
- data/lib/rubocop/cop/gemspec/duplicated_assignment.rb +2 -2
- data/lib/rubocop/cop/gemspec/ruby_version_globals_usage.rb +3 -3
- data/lib/rubocop/cop/layout/assignment_indentation.rb +3 -2
- data/lib/rubocop/cop/layout/case_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/condition_position.rb +0 -4
- data/lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb +1 -1
- data/lib/rubocop/cop/layout/first_argument_indentation.rb +2 -2
- data/lib/rubocop/cop/layout/heredoc_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/indentation_width.rb +1 -1
- data/lib/rubocop/cop/layout/line_length.rb +20 -20
- data/lib/rubocop/cop/layout/space_around_operators.rb +3 -0
- data/lib/rubocop/cop/legacy/corrector.rb +12 -2
- data/lib/rubocop/cop/lint/ambiguous_block_association.rb +0 -2
- data/lib/rubocop/cop/lint/ambiguous_operator.rb +0 -2
- data/lib/rubocop/cop/lint/ambiguous_regexp_literal.rb +0 -2
- data/lib/rubocop/cop/lint/boolean_symbol.rb +0 -2
- data/lib/rubocop/cop/lint/circular_argument_reference.rb +0 -13
- data/lib/rubocop/cop/lint/debugger.rb +0 -4
- data/lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb +0 -10
- data/lib/rubocop/cop/lint/duplicate_case_condition.rb +1 -5
- data/lib/rubocop/cop/lint/duplicate_hash_key.rb +0 -4
- data/lib/rubocop/cop/lint/duplicate_methods.rb +0 -10
- data/lib/rubocop/cop/lint/each_with_object_argument.rb +0 -4
- data/lib/rubocop/cop/lint/else_layout.rb +0 -2
- data/lib/rubocop/cop/lint/empty_ensure.rb +1 -11
- data/lib/rubocop/cop/lint/empty_interpolation.rb +0 -4
- data/lib/rubocop/cop/lint/empty_when.rb +1 -3
- data/lib/rubocop/cop/lint/ensure_return.rb +1 -6
- data/lib/rubocop/cop/lint/float_comparison.rb +3 -1
- data/lib/rubocop/cop/lint/float_out_of_range.rb +0 -4
- data/lib/rubocop/cop/lint/format_parameter_mismatch.rb +0 -10
- data/lib/rubocop/cop/lint/implicit_string_concatenation.rb +15 -12
- data/lib/rubocop/cop/lint/ineffective_access_modifier.rb +0 -7
- data/lib/rubocop/cop/lint/interpolation_check.rb +0 -4
- data/lib/rubocop/cop/lint/literal_as_condition.rb +1 -1
- data/lib/rubocop/cop/lint/literal_assignment_in_condition.rb +1 -1
- data/lib/rubocop/cop/lint/literal_in_interpolation.rb +0 -4
- data/lib/rubocop/cop/lint/loop.rb +6 -12
- data/lib/rubocop/cop/lint/nested_method_definition.rb +1 -7
- data/lib/rubocop/cop/lint/next_without_accumulator.rb +0 -4
- data/lib/rubocop/cop/lint/no_return_in_begin_end_blocks.rb +0 -5
- data/lib/rubocop/cop/lint/percent_string_array.rb +0 -4
- data/lib/rubocop/cop/lint/percent_symbol_array.rb +0 -4
- data/lib/rubocop/cop/lint/rand_one.rb +0 -4
- data/lib/rubocop/cop/lint/redundant_cop_enable_directive.rb +3 -1
- data/lib/rubocop/cop/lint/redundant_splat_expansion.rb +1 -1
- data/lib/rubocop/cop/lint/redundant_string_coercion.rb +0 -4
- data/lib/rubocop/cop/lint/require_parentheses.rb +0 -4
- data/lib/rubocop/cop/lint/rescue_exception.rb +0 -4
- data/lib/rubocop/cop/lint/return_in_void_context.rb +0 -2
- data/lib/rubocop/cop/lint/safe_navigation_chain.rb +0 -4
- data/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb +6 -10
- data/lib/rubocop/cop/lint/to_enum_arguments.rb +2 -9
- data/lib/rubocop/cop/lint/unified_integer.rb +0 -4
- data/lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb +1 -0
- data/lib/rubocop/cop/lint/unreachable_code.rb +0 -5
- data/lib/rubocop/cop/lint/useless_assignment.rb +1 -5
- data/lib/rubocop/cop/lint/useless_else_without_rescue.rb +0 -4
- data/lib/rubocop/cop/lint/useless_setter_call.rb +0 -4
- data/lib/rubocop/cop/lint/void.rb +5 -0
- data/lib/rubocop/cop/metrics/block_nesting.rb +19 -7
- data/lib/rubocop/cop/mixin/alignment.rb +5 -1
- data/lib/rubocop/cop/mixin/allowed_methods.rb +7 -1
- data/lib/rubocop/cop/mixin/allowed_pattern.rb +15 -3
- data/lib/rubocop/cop/mixin/configurable_max.rb +5 -1
- data/lib/rubocop/cop/mixin/rescue_node.rb +4 -0
- data/lib/rubocop/cop/naming/predicate_name.rb +52 -26
- data/lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb +10 -1
- data/lib/rubocop/cop/style/arguments_forwarding.rb +1 -1
- data/lib/rubocop/cop/style/def_with_parentheses.rb +0 -2
- data/lib/rubocop/cop/style/each_for_simple_loop.rb +0 -1
- data/lib/rubocop/cop/style/eval_with_location.rb +12 -11
- data/lib/rubocop/cop/style/file_read.rb +2 -5
- data/lib/rubocop/cop/style/file_write.rb +2 -5
- data/lib/rubocop/cop/style/global_std_stream.rb +7 -1
- data/lib/rubocop/cop/style/hash_except.rb +8 -5
- data/lib/rubocop/cop/style/if_with_boolean_literal_branches.rb +0 -1
- data/lib/rubocop/cop/style/invertible_unless_condition.rb +2 -2
- data/lib/rubocop/cop/style/map_compact_with_conditional_block.rb +77 -43
- data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +5 -0
- data/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +1 -1
- data/lib/rubocop/cop/style/missing_else.rb +0 -4
- data/lib/rubocop/cop/style/multiline_when_then.rb +0 -4
- data/lib/rubocop/cop/style/quoted_symbols.rb +1 -1
- data/lib/rubocop/cop/style/redundant_begin.rb +1 -1
- data/lib/rubocop/cop/style/redundant_condition.rb +0 -1
- data/lib/rubocop/cop/style/redundant_file_extension_in_require.rb +1 -1
- data/lib/rubocop/cop/style/redundant_regexp_escape.rb +8 -24
- data/lib/rubocop/cop/style/send_with_literal_method_name.rb +15 -1
- data/lib/rubocop/cop/style/sole_nested_conditional.rb +21 -2
- data/lib/rubocop/cop/style/super_arguments.rb +28 -10
- data/lib/rubocop/cop/style/symbol_proc.rb +8 -1
- data/lib/rubocop/cop/style/while_until_do.rb +0 -2
- data/lib/rubocop/cop/style/while_until_modifier.rb +0 -1
- data/lib/rubocop/cop/style/zero_length_predicate.rb +32 -24
- data/lib/rubocop/cop/team.rb +8 -0
- data/lib/rubocop/cop/util.rb +7 -1
- data/lib/rubocop/cop/variable_force.rb +13 -1
- data/lib/rubocop/cops_documentation_generator.rb +1 -1
- data/lib/rubocop/core_ext/string.rb +2 -6
- data/lib/rubocop/ext/regexp_node.rb +9 -31
- data/lib/rubocop/ext/regexp_parser.rb +4 -21
- data/lib/rubocop/formatter/html_formatter.rb +3 -1
- data/lib/rubocop/options.rb +3 -1
- data/lib/rubocop/rspec/shared_contexts.rb +20 -0
- data/lib/rubocop/rspec/support.rb +1 -0
- data/lib/rubocop/server/cache.rb +10 -0
- data/lib/rubocop/server/client_command/exec.rb +2 -2
- data/lib/rubocop/server/client_command/start.rb +1 -1
- data/lib/rubocop/server/core.rb +4 -0
- data/lib/rubocop/version.rb +1 -1
- data/lib/rubocop.rb +6 -0
- metadata +7 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5ff6bd1def6f2fc502a83cef45c2031e812de416bf82ee6805ed3c8a4aa4ec08
|
4
|
+
data.tar.gz: 3fc581f44db6ecb7a31a16b58799151c941184b3d972d11716215165c071d672
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 07e4e645df882074e88da46ca8a69d7b1d12ec0d83bf4dfaaef6d799dcdb49c584b904d9f186e59278e663bbebe3db8e3950a6d4219fa73487978261c72fded6
|
7
|
+
data.tar.gz: 2d8d8ad60a022ee9df6cb9d164486044787a3a41da8bee073cabb528299d9f62968b8f90fc18a1cba0dbb581968912a478ddda85c1f02c336eb92dbd83092b14
|
data/README.md
CHANGED
@@ -52,7 +52,7 @@ To prevent an unwanted RuboCop update you might want to use a conservative versi
|
|
52
52
|
in your `Gemfile`:
|
53
53
|
|
54
54
|
```rb
|
55
|
-
gem 'rubocop', '~> 1.
|
55
|
+
gem 'rubocop', '~> 1.65', require: false
|
56
56
|
```
|
57
57
|
|
58
58
|
See [our versioning policy](https://docs.rubocop.org/rubocop/versioning.html) for further details.
|
data/config/default.yml
CHANGED
@@ -262,6 +262,15 @@ Bundler/OrderedGems:
|
|
262
262
|
|
263
263
|
#################### Gemspec ###############################
|
264
264
|
|
265
|
+
Gemspec/AddRuntimeDependency:
|
266
|
+
Description: 'Prefer `add_dependency` over `add_runtime_dependency`.'
|
267
|
+
StyleGuide: '#add_dependency_vs_add_runtime_dependency'
|
268
|
+
Reference: https://github.com/rubygems/rubygems/issues/7799#issuecomment-2192720316
|
269
|
+
Enabled: pending
|
270
|
+
VersionAdded: '1.65'
|
271
|
+
Include:
|
272
|
+
- '**/*.gemspec'
|
273
|
+
|
265
274
|
Gemspec/DependencyVersion:
|
266
275
|
Description: 'Requires or forbids specifying gem dependency versions.'
|
267
276
|
Enabled: false
|
@@ -2617,8 +2626,9 @@ Metrics/BlockNesting:
|
|
2617
2626
|
StyleGuide: '#three-is-the-number-thou-shalt-count'
|
2618
2627
|
Enabled: true
|
2619
2628
|
VersionAdded: '0.25'
|
2620
|
-
VersionChanged: '
|
2629
|
+
VersionChanged: '1.65'
|
2621
2630
|
CountBlocks: false
|
2631
|
+
CountModifierForms: false
|
2622
2632
|
Max: 3
|
2623
2633
|
|
2624
2634
|
Metrics/ClassLength:
|
@@ -164,7 +164,7 @@ module RuboCop
|
|
164
164
|
# searches will go past this directory.
|
165
165
|
# @deprecated Use `RuboCop::ConfigFinder.project_root` instead.
|
166
166
|
def project_root
|
167
|
-
warn Rainbow(<<~WARNING).yellow
|
167
|
+
warn Rainbow(<<~WARNING).yellow, uplevel: 1
|
168
168
|
`RuboCop::ConfigLoader.project_root` is deprecated and will be removed in RuboCop 2.0. \
|
169
169
|
Use `RuboCop::ConfigFinder.project_root` instead.
|
170
170
|
WARNING
|
@@ -6,7 +6,7 @@ require 'yaml'
|
|
6
6
|
module RuboCop
|
7
7
|
# A help class for ConfigLoader that handles configuration resolution.
|
8
8
|
# @api private
|
9
|
-
class ConfigLoaderResolver
|
9
|
+
class ConfigLoaderResolver # rubocop:disable Metrics/ClassLength
|
10
10
|
def resolve_requires(path, hash)
|
11
11
|
config_dir = File.dirname(path)
|
12
12
|
hash.delete('require').tap do |loaded_features|
|
@@ -267,8 +267,14 @@ module RuboCop
|
|
267
267
|
|
268
268
|
def gem_config_path(gem_name, relative_config_path)
|
269
269
|
if defined?(Bundler)
|
270
|
-
|
271
|
-
|
270
|
+
begin
|
271
|
+
gem = Bundler.load.specs[gem_name].first
|
272
|
+
gem_path = gem.full_gem_path if gem
|
273
|
+
rescue Bundler::GemfileNotFound
|
274
|
+
# No Gemfile found. Bundler may be loaded manually
|
275
|
+
rescue Bundler::GitError
|
276
|
+
# The Gemfile exists but contains an uninstalled git source
|
277
|
+
end
|
272
278
|
end
|
273
279
|
|
274
280
|
gem_path ||= Gem::Specification.find_by_name(gem_name).gem_dir
|
data/lib/rubocop/cop/cop.rb
CHANGED
@@ -37,16 +37,28 @@ module RuboCop
|
|
37
37
|
|
38
38
|
# @deprecated Use Registry.global
|
39
39
|
def self.registry
|
40
|
+
warn Rainbow(<<~WARNING).yellow, uplevel: 1
|
41
|
+
`Cop.registry` is deprecated. Use `Registry.global` instead.
|
42
|
+
WARNING
|
43
|
+
|
40
44
|
Registry.global
|
41
45
|
end
|
42
46
|
|
43
47
|
# @deprecated Use Registry.all
|
44
48
|
def self.all
|
49
|
+
warn Rainbow(<<~WARNING).yellow, uplevel: 1
|
50
|
+
`Cop.all` is deprecated. Use `Registry.all` instead.
|
51
|
+
WARNING
|
52
|
+
|
45
53
|
Registry.all
|
46
54
|
end
|
47
55
|
|
48
56
|
# @deprecated Use Registry.qualified_cop_name
|
49
57
|
def self.qualified_cop_name(name, origin)
|
58
|
+
warn Rainbow(<<~WARNING).yellow, uplevel: 1
|
59
|
+
`Cop.qualified_cop_name` is deprecated. Use `Registry.qualified_cop_name` instead.
|
60
|
+
WARNING
|
61
|
+
|
50
62
|
Registry.qualified_cop_name(name, origin)
|
51
63
|
end
|
52
64
|
|
@@ -58,7 +70,7 @@ module RuboCop
|
|
58
70
|
# template file, we convert it to location info in the original file.
|
59
71
|
range = range_for_original(range)
|
60
72
|
|
61
|
-
if block.nil? && !support_autocorrect?
|
73
|
+
if block.nil? && !self.class.support_autocorrect?
|
62
74
|
super(range, message: message, severity: severity)
|
63
75
|
else
|
64
76
|
super(range, message: message, severity: severity) do |corrector|
|
@@ -74,13 +86,19 @@ module RuboCop
|
|
74
86
|
|
75
87
|
# @deprecated Use class method
|
76
88
|
def support_autocorrect?
|
77
|
-
|
89
|
+
warn Rainbow(<<~WARNING).yellow, uplevel: 1
|
90
|
+
`support_autocorrect?` is deprecated. Use `cop.class.support_autocorrect?`.
|
91
|
+
WARNING
|
92
|
+
|
78
93
|
self.class.support_autocorrect?
|
79
94
|
end
|
80
95
|
|
81
96
|
# @deprecated
|
82
97
|
def corrections
|
83
|
-
|
98
|
+
warn Rainbow(<<~WARNING).yellow, uplevel: 1
|
99
|
+
`Cop#corrections` is deprecated.
|
100
|
+
WARNING
|
101
|
+
|
84
102
|
return [] unless @last_corrector
|
85
103
|
|
86
104
|
Legacy::CorrectionsProxy.new(@last_corrector)
|
@@ -136,7 +154,7 @@ module RuboCop
|
|
136
154
|
end
|
137
155
|
|
138
156
|
def correction_lambda
|
139
|
-
return unless support_autocorrect?
|
157
|
+
return unless self.class.support_autocorrect?
|
140
158
|
|
141
159
|
dedupe_on_node(@v0_argument) { autocorrect(@v0_argument) }
|
142
160
|
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RuboCop
|
4
|
+
module Cop
|
5
|
+
module Gemspec
|
6
|
+
# Prefer `add_dependency` over `add_runtime_dependency` as the latter is
|
7
|
+
# considered soft-deprecated.
|
8
|
+
#
|
9
|
+
# @example
|
10
|
+
#
|
11
|
+
# # bad
|
12
|
+
# Gem::Specification.new do |spec|
|
13
|
+
# spec.add_runtime_dependency('rubocop')
|
14
|
+
# end
|
15
|
+
#
|
16
|
+
# # good
|
17
|
+
# Gem::Specification.new do |spec|
|
18
|
+
# spec.add_dependency('rubocop')
|
19
|
+
# end
|
20
|
+
#
|
21
|
+
class AddRuntimeDependency < Base
|
22
|
+
extend AutoCorrector
|
23
|
+
|
24
|
+
MSG = 'Use `add_dependency` instead of `add_runtime_dependency`.'
|
25
|
+
|
26
|
+
RESTRICT_ON_SEND = %i[add_runtime_dependency].freeze
|
27
|
+
|
28
|
+
def on_send(node)
|
29
|
+
return if !node.receiver || node.arguments.empty?
|
30
|
+
|
31
|
+
add_offense(node.loc.selector) do |corrector|
|
32
|
+
corrector.replace(node.loc.selector, 'add_dependency')
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -31,8 +31,8 @@ module RuboCop
|
|
31
31
|
#
|
32
32
|
# # good
|
33
33
|
# Gem::Specification.new do |spec|
|
34
|
-
# spec.
|
35
|
-
# spec.
|
34
|
+
# spec.add_dependency('parallel', '~> 1.10')
|
35
|
+
# spec.add_dependency('parser', '>= 2.3.3.1', '< 3.0')
|
36
36
|
# end
|
37
37
|
class DuplicatedAssignment < Base
|
38
38
|
include RangeHelp
|
@@ -14,15 +14,15 @@ module RuboCop
|
|
14
14
|
# # bad
|
15
15
|
# Gem::Specification.new do |spec|
|
16
16
|
# if RUBY_VERSION >= '3.0'
|
17
|
-
# spec.
|
17
|
+
# spec.add_dependency 'gem_a'
|
18
18
|
# else
|
19
|
-
# spec.
|
19
|
+
# spec.add_dependency 'gem_b'
|
20
20
|
# end
|
21
21
|
# end
|
22
22
|
#
|
23
23
|
# # good
|
24
24
|
# Gem::Specification.new do |spec|
|
25
|
-
# spec.
|
25
|
+
# spec.add_dependency 'gem_a'
|
26
26
|
# end
|
27
27
|
#
|
28
28
|
class RubyVersionGlobalsUsage < Base
|
@@ -6,6 +6,9 @@ module RuboCop
|
|
6
6
|
# Checks the indentation of the first line of the
|
7
7
|
# right-hand-side of a multi-line assignment.
|
8
8
|
#
|
9
|
+
# The indentation of the remaining lines can be corrected with
|
10
|
+
# other cops such as `Layout/IndentationConsistency` and `Layout/EndAlignment`.
|
11
|
+
#
|
9
12
|
# @example
|
10
13
|
# # bad
|
11
14
|
# value =
|
@@ -19,8 +22,6 @@ module RuboCop
|
|
19
22
|
# 'bar'
|
20
23
|
# end
|
21
24
|
#
|
22
|
-
# The indentation of the remaining lines can be corrected with
|
23
|
-
# other cops such as `IndentationConsistency` and `EndAlignment`.
|
24
25
|
class AssignmentIndentation < Base
|
25
26
|
include CheckAssignment
|
26
27
|
include Alignment
|
@@ -121,7 +121,7 @@ module RuboCop
|
|
121
121
|
return if case_node.single_line?
|
122
122
|
return if enforced_style_end? && end_and_last_conditional_same_line?(case_node)
|
123
123
|
|
124
|
-
case_node.
|
124
|
+
case_node.when_branches.each { |when_node| check_when(when_node, 'when') }
|
125
125
|
end
|
126
126
|
|
127
127
|
def on_case_match(case_match_node)
|
@@ -118,8 +118,8 @@ module RuboCop
|
|
118
118
|
#
|
119
119
|
# @example EnforcedStyle: special_for_inner_method_call
|
120
120
|
# # The first argument should normally be indented one step more than
|
121
|
-
# # the preceding line, but if it's
|
122
|
-
# # is itself
|
121
|
+
# # the preceding line, but if it's an argument for a method call that
|
122
|
+
# # is itself an argument in a method call, then the inner argument
|
123
123
|
# # should be indented relative to the inner method.
|
124
124
|
#
|
125
125
|
# # good
|
@@ -6,7 +6,7 @@ module RuboCop
|
|
6
6
|
# Checks the indentation of the here document bodies. The bodies
|
7
7
|
# are indented one step.
|
8
8
|
#
|
9
|
-
#
|
9
|
+
# NOTE: When ``Layout/LineLength``'s `AllowHeredoc` is false (not default),
|
10
10
|
# this cop does not add any offenses for long here documents to
|
11
11
|
# avoid ``Layout/LineLength``'s offenses.
|
12
12
|
#
|
@@ -17,29 +17,29 @@ module RuboCop
|
|
17
17
|
# split across lines. These include arrays, hashes, and
|
18
18
|
# method calls with argument lists.
|
19
19
|
#
|
20
|
-
# If autocorrection is enabled, the following
|
20
|
+
# If autocorrection is enabled, the following cops
|
21
21
|
# are recommended to further format the broken lines.
|
22
22
|
# (Many of these are enabled by default.)
|
23
23
|
#
|
24
|
-
# * ArgumentAlignment
|
25
|
-
# * ArrayAlignment
|
26
|
-
# * BlockAlignment
|
27
|
-
# *
|
28
|
-
# *
|
29
|
-
# *
|
30
|
-
# *
|
31
|
-
# *
|
32
|
-
# *
|
33
|
-
# *
|
34
|
-
# *
|
35
|
-
# *
|
36
|
-
# *
|
37
|
-
# *
|
38
|
-
# *
|
39
|
-
# *
|
40
|
-
# *
|
41
|
-
# *
|
42
|
-
# *
|
24
|
+
# * `Layout/ArgumentAlignment`
|
25
|
+
# * `Layout/ArrayAlignment`
|
26
|
+
# * `Layout/BlockAlignment`
|
27
|
+
# * `Layout/BlockEndNewline`
|
28
|
+
# * `LayoutClosingParenthesisIndentation`
|
29
|
+
# * `LayoutFirstArgumentIndentation`
|
30
|
+
# * `LayoutFirstArrayElementIndentation`
|
31
|
+
# * `LayoutFirstHashElementIndentation`
|
32
|
+
# * `LayoutFirstParameterIndentation`
|
33
|
+
# * `LayoutHashAlignment`
|
34
|
+
# * `LayoutIndentationWidth`
|
35
|
+
# * `LayoutMultilineArrayLineBreaks`
|
36
|
+
# * `LayoutMultilineBlockLayout`
|
37
|
+
# * `LayoutMultilineHashBraceLayout`
|
38
|
+
# * `LayoutMultilineHashKeyLineBreaks`
|
39
|
+
# * `LayoutMultilineMethodArgumentLineBreaks`
|
40
|
+
# * `LayoutMultilineMethodParameterLineBreaks`
|
41
|
+
# * `Layout/ParameterAlignment`
|
42
|
+
# * `Style/BlockDelimiters`
|
43
43
|
#
|
44
44
|
# Together, these cops will pretty print hashes, arrays,
|
45
45
|
# method calls, etc. For example, let's say the max columns
|
@@ -180,6 +180,9 @@ module RuboCop
|
|
180
180
|
with_space = range_with_surrounding_space(operator)
|
181
181
|
return if with_space.source.start_with?("\n")
|
182
182
|
|
183
|
+
comment = processed_source.comment_at_line(operator.line)
|
184
|
+
return if comment && with_space.last_column == comment.loc.column
|
185
|
+
|
183
186
|
offense(type, operator, with_space, right_operand) do |msg|
|
184
187
|
add_offense(operator, message: msg) do |corrector|
|
185
188
|
autocorrect(corrector, with_space, right_operand)
|
@@ -12,13 +12,23 @@ module RuboCop
|
|
12
12
|
if corr.is_a?(CorrectionsProxy)
|
13
13
|
merge!(corr.send(:corrector))
|
14
14
|
else
|
15
|
-
|
15
|
+
unless corr.empty?
|
16
|
+
warn Rainbow(<<~WARNING).yellow, uplevel: 1
|
17
|
+
`Corrector.new` with corrections is deprecated.
|
18
|
+
See https://docs.rubocop.org/rubocop/v1_upgrade_notes.html
|
19
|
+
WARNING
|
20
|
+
end
|
21
|
+
|
16
22
|
corr.each { |c| corrections << c }
|
17
23
|
end
|
18
24
|
end
|
19
25
|
|
20
26
|
def corrections
|
21
|
-
|
27
|
+
warn Rainbow(<<~WARNING).yellow, uplevel: 1
|
28
|
+
`Corrector#corrections` is deprecated. Open an issue if you have a valid usecase.
|
29
|
+
See https://docs.rubocop.org/rubocop/v1_upgrade_notes.html
|
30
|
+
WARNING
|
31
|
+
|
22
32
|
CorrectionsProxy.new(self)
|
23
33
|
end
|
24
34
|
end
|
@@ -11,39 +11,26 @@ module RuboCop
|
|
11
11
|
# @example
|
12
12
|
#
|
13
13
|
# # bad
|
14
|
-
#
|
15
14
|
# def bake(pie: pie)
|
16
15
|
# pie.heat_up
|
17
16
|
# end
|
18
17
|
#
|
19
|
-
# @example
|
20
|
-
#
|
21
18
|
# # good
|
22
|
-
#
|
23
19
|
# def bake(pie:)
|
24
20
|
# pie.refrigerate
|
25
21
|
# end
|
26
22
|
#
|
27
|
-
# @example
|
28
|
-
#
|
29
23
|
# # good
|
30
|
-
#
|
31
24
|
# def bake(pie: self.pie)
|
32
25
|
# pie.feed_to(user)
|
33
26
|
# end
|
34
27
|
#
|
35
|
-
# @example
|
36
|
-
#
|
37
28
|
# # bad
|
38
|
-
#
|
39
29
|
# def cook(dry_ingredients = dry_ingredients)
|
40
30
|
# dry_ingredients.reduce(&:+)
|
41
31
|
# end
|
42
32
|
#
|
43
|
-
# @example
|
44
|
-
#
|
45
33
|
# # good
|
46
|
-
#
|
47
34
|
# def cook(dry_ingredients = self.dry_ingredients)
|
48
35
|
# dry_ingredients.combine
|
49
36
|
# end
|
@@ -44,8 +44,6 @@ module RuboCop
|
|
44
44
|
# do_something
|
45
45
|
# end
|
46
46
|
#
|
47
|
-
# @example
|
48
|
-
#
|
49
47
|
# # bad (ok during development)
|
50
48
|
#
|
51
49
|
# # using byebug
|
@@ -54,8 +52,6 @@ module RuboCop
|
|
54
52
|
# do_something
|
55
53
|
# end
|
56
54
|
#
|
57
|
-
# @example
|
58
|
-
#
|
59
55
|
# # good
|
60
56
|
#
|
61
57
|
# def some_method
|
@@ -9,28 +9,18 @@ module RuboCop
|
|
9
9
|
#
|
10
10
|
# @example
|
11
11
|
#
|
12
|
-
# # Example for OpenSSL::Cipher instantiation.
|
13
|
-
#
|
14
12
|
# # bad
|
15
13
|
# OpenSSL::Cipher::AES.new(128, :GCM)
|
16
14
|
#
|
17
15
|
# # good
|
18
16
|
# OpenSSL::Cipher.new('aes-128-gcm')
|
19
17
|
#
|
20
|
-
# @example
|
21
|
-
#
|
22
|
-
# # Example for OpenSSL::Digest instantiation.
|
23
|
-
#
|
24
18
|
# # bad
|
25
19
|
# OpenSSL::Digest::SHA256.new
|
26
20
|
#
|
27
21
|
# # good
|
28
22
|
# OpenSSL::Digest.new('SHA256')
|
29
23
|
#
|
30
|
-
# @example
|
31
|
-
#
|
32
|
-
# # Example for ::Digest inherited class methods.
|
33
|
-
#
|
34
24
|
# # bad
|
35
25
|
# OpenSSL::Digest::SHA256.digest('foo')
|
36
26
|
#
|
@@ -9,7 +9,6 @@ module RuboCop
|
|
9
9
|
# @example
|
10
10
|
#
|
11
11
|
# # bad
|
12
|
-
#
|
13
12
|
# case x
|
14
13
|
# when 'first'
|
15
14
|
# do_something
|
@@ -17,10 +16,7 @@ module RuboCop
|
|
17
16
|
# do_something_else
|
18
17
|
# end
|
19
18
|
#
|
20
|
-
# @example
|
21
|
-
#
|
22
19
|
# # good
|
23
|
-
#
|
24
20
|
# case x
|
25
21
|
# when 'first'
|
26
22
|
# do_something
|
@@ -32,7 +28,7 @@ module RuboCop
|
|
32
28
|
|
33
29
|
def on_case(case_node)
|
34
30
|
case_node.when_branches.each_with_object(Set.new) do |when_node, previous|
|
35
|
-
when_node.
|
31
|
+
when_node.conditions.each do |condition|
|
36
32
|
add_offense(condition) unless previous.add?(condition)
|
37
33
|
end
|
38
34
|
end
|
@@ -9,7 +9,6 @@ module RuboCop
|
|
9
9
|
# @example
|
10
10
|
#
|
11
11
|
# # bad
|
12
|
-
#
|
13
12
|
# def foo
|
14
13
|
# 1
|
15
14
|
# end
|
@@ -18,20 +17,14 @@ module RuboCop
|
|
18
17
|
# 2
|
19
18
|
# end
|
20
19
|
#
|
21
|
-
# @example
|
22
|
-
#
|
23
20
|
# # bad
|
24
|
-
#
|
25
21
|
# def foo
|
26
22
|
# 1
|
27
23
|
# end
|
28
24
|
#
|
29
25
|
# alias foo bar
|
30
26
|
#
|
31
|
-
# @example
|
32
|
-
#
|
33
27
|
# # good
|
34
|
-
#
|
35
28
|
# def foo
|
36
29
|
# 1
|
37
30
|
# end
|
@@ -40,10 +33,7 @@ module RuboCop
|
|
40
33
|
# 2
|
41
34
|
# end
|
42
35
|
#
|
43
|
-
# @example
|
44
|
-
#
|
45
36
|
# # good
|
46
|
-
#
|
47
37
|
# def foo
|
48
38
|
# 1
|
49
39
|
# end
|
@@ -12,13 +12,9 @@ module RuboCop
|
|
12
12
|
# @example
|
13
13
|
#
|
14
14
|
# # bad
|
15
|
-
#
|
16
15
|
# sum = numbers.each_with_object(0) { |e, a| a += e }
|
17
16
|
#
|
18
|
-
# @example
|
19
|
-
#
|
20
17
|
# # good
|
21
|
-
#
|
22
18
|
# num = 0
|
23
19
|
# sum = numbers.each_with_object(num) { |e, a| a += e }
|
24
20
|
class EachWithObjectArgument < Base
|