rubocop 1.45.0 → 1.45.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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 648a8aa3156aebf0c078bc0b600f301d3aa0abaf92d6b3643c343718575f7302
|
4
|
+
data.tar.gz: 21b185886d70b70a163c6e7f3ea47e04ee0a0afcf11217e0d7bcb31e25440880
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ff5a5e947001ba9507f3e806896559baaf0e4bccc6b2cc56316dffc3ae334f62046040be389518139d2979c4d09900600f9b233bc1f4dbd2d1d37a2f8fe99037
|
7
|
+
data.tar.gz: 8f89f55198c9d206c5b8d0c32cbeb5033491046c0ea0f4311f6c1a23595bcce852ec732606ca1fd2bc499b31ecb2265dcf6d85edd352f6400d01bd9385993a44
|
data/lib/rubocop/cop/cop.rb
CHANGED
@@ -53,6 +53,11 @@ module RuboCop
|
|
53
53
|
def add_offense(node_or_range, location: :expression, message: nil, severity: nil, &block)
|
54
54
|
@v0_argument = node_or_range
|
55
55
|
range = find_location(node_or_range, location)
|
56
|
+
|
57
|
+
# Since this range may be generated from Ruby code embedded in some
|
58
|
+
# template file, we convert it to location info in the original file.
|
59
|
+
range = range_for_original(range)
|
60
|
+
|
56
61
|
if block.nil? && !support_autocorrect?
|
57
62
|
super(range, message: message, severity: severity)
|
58
63
|
else
|
@@ -93,14 +98,21 @@ module RuboCop
|
|
93
98
|
super
|
94
99
|
end
|
95
100
|
|
96
|
-
|
97
|
-
|
98
|
-
def begin_investigation(processed_source)
|
101
|
+
# Called before any investigation
|
102
|
+
# @api private
|
103
|
+
def begin_investigation(processed_source, offset: 0, original: processed_source)
|
99
104
|
super
|
100
105
|
@offenses = current_offenses
|
101
106
|
@last_corrector = @current_corrector
|
107
|
+
|
108
|
+
# We need to keep track of the original source and offset,
|
109
|
+
# because `processed_source` here may be an embedded code in it.
|
110
|
+
@current_offset = offset
|
111
|
+
@current_original = original
|
102
112
|
end
|
103
113
|
|
114
|
+
private
|
115
|
+
|
104
116
|
# Override Base
|
105
117
|
def callback_argument(_range)
|
106
118
|
@v0_argument
|
@@ -141,6 +153,14 @@ module RuboCop
|
|
141
153
|
rescue ::Parser::ClobberingError
|
142
154
|
# ignore Clobbering errors
|
143
155
|
end
|
156
|
+
|
157
|
+
def range_for_original(range)
|
158
|
+
::Parser::Source::Range.new(
|
159
|
+
@current_original.buffer,
|
160
|
+
range.begin_pos + @current_offset,
|
161
|
+
range.end_pos + @current_offset
|
162
|
+
)
|
163
|
+
end
|
144
164
|
end
|
145
165
|
end
|
146
166
|
end
|
@@ -82,44 +82,25 @@ module RuboCop
|
|
82
82
|
def debugger_methods
|
83
83
|
@debugger_methods ||= begin
|
84
84
|
config = cop_config.fetch('DebuggerMethods', [])
|
85
|
-
|
86
|
-
values.map do |v|
|
87
|
-
next unless v
|
88
|
-
|
89
|
-
*receiver, method_name = v.split('.')
|
90
|
-
{
|
91
|
-
receiver: receiver.empty? ? nil : receiver.map(&:to_sym),
|
92
|
-
method_name: method_name.to_sym
|
93
|
-
}
|
94
|
-
end.compact
|
85
|
+
config.is_a?(Array) ? config : config.values.flatten
|
95
86
|
end
|
96
87
|
end
|
97
88
|
|
98
89
|
def debugger_method?(send_node)
|
99
|
-
|
100
|
-
|
101
|
-
debugger_methods.any? do |method|
|
102
|
-
next unless method[:method_name] == method_name
|
90
|
+
return if send_node.parent&.send_type? && send_node.parent.receiver == send_node
|
103
91
|
|
104
|
-
|
105
|
-
send_node.receiver.nil?
|
106
|
-
else
|
107
|
-
method[:receiver] == receiver_chain(send_node)
|
108
|
-
end
|
109
|
-
end
|
92
|
+
debugger_methods.include?(chained_method_name(send_node))
|
110
93
|
end
|
111
94
|
|
112
|
-
def
|
113
|
-
|
95
|
+
def chained_method_name(send_node)
|
96
|
+
chained_method_name = send_node.method_name.to_s
|
114
97
|
receiver = send_node.receiver
|
115
|
-
|
116
98
|
while receiver
|
117
|
-
name = receiver.send_type? ? receiver.method_name : receiver.const_name
|
118
|
-
|
99
|
+
name = receiver.send_type? ? receiver.method_name : receiver.const_name
|
100
|
+
chained_method_name = "#{name}.#{chained_method_name}"
|
119
101
|
receiver = receiver.receiver
|
120
102
|
end
|
121
|
-
|
122
|
-
receivers
|
103
|
+
chained_method_name
|
123
104
|
end
|
124
105
|
end
|
125
106
|
end
|
@@ -152,7 +152,7 @@ module RuboCop
|
|
152
152
|
|
153
153
|
def right_siblings_same_inline_method?(node)
|
154
154
|
node.right_siblings.any? do |sibling|
|
155
|
-
sibling.method?(node.method_name) && !sibling.arguments.empty?
|
155
|
+
sibling.send_type? && sibling.method?(node.method_name) && !sibling.arguments.empty?
|
156
156
|
end
|
157
157
|
end
|
158
158
|
|
@@ -167,8 +167,8 @@ module RuboCop
|
|
167
167
|
def argument_with_operator?(argument)
|
168
168
|
return true if ARGUMENT_WITH_OPERATOR_TYPES.include?(argument.type)
|
169
169
|
return false unless argument.hash_type?
|
170
|
+
return false unless (node = argument.children.first)
|
170
171
|
|
171
|
-
node = argument.children.first
|
172
172
|
node.kwsplat_type? || node.forwarded_kwrestarg_type?
|
173
173
|
end
|
174
174
|
|
data/lib/rubocop/version.rb
CHANGED