lib/rubocop/cop/style/lambda.rb in rubocop-0.49.1 vs lib/rubocop/cop/style/lambda.rb in rubocop-0.50.0
- old
+ new
@@ -125,11 +125,11 @@
def autocorrect_literal_to_method(corrector, node)
block_method, args = *node
# Check for unparenthesized args' preceding and trailing whitespaces.
- remove_unparenthesized_whitespaces(corrector, node)
+ remove_unparenthesized_whitespace(corrector, node)
# Avoid correcting to `lambdado` by inserting whitespace
# if none exists before or after the lambda arguments.
if needs_whitespace?(block_method, args, node)
corrector.insert_before(node.loc.begin, ' ')
@@ -184,21 +184,31 @@
return false if parenthesized_call?(parent)
arg_node.sibling_index > 1
end
- def remove_unparenthesized_whitespaces(corrector, node)
- block_method, args = *node
+ def remove_unparenthesized_whitespace(corrector, node)
+ args = node.arguments
+
return unless unparenthesized_literal_args?(args)
- # First, remove leading whitespaces (between arrow and args)
+
+ remove_leading_whitespace(node, corrector)
+ remove_trailing_whitespace(node, corrector)
+ end
+
+ def remove_leading_whitespace(node, corrector)
corrector.remove_preceding(
- args.source_range,
- args.source_range.begin_pos - block_method.source_range.end_pos
+ node.arguments.source_range,
+ node.arguments.source_range.begin_pos -
+ node.send_node.source_range.end_pos
)
+ end
- # Then, remove trailing whitespaces (between args and 'do')
- delta = node.loc.begin.begin_pos - args.source_range.end_pos - 1
- corrector.remove_preceding(node.loc.begin, delta)
+ def remove_trailing_whitespace(node, corrector)
+ corrector.remove_preceding(
+ node.loc.begin,
+ node.loc.begin.begin_pos - node.arguments.source_range.end_pos - 1
+ )
end
def unparenthesized_literal_args?(args)
args.source_range && args.source_range.begin && !parentheses?(args)
end