rubocop 1.64.1 → 1.65.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.
- 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
|