class RuboCop::Cop::Performance::RedundantBlockCall
end
yield 1, 2, 3
def another
end
yield
def method
@good
end
func.call 1, 2, 3
def another(&func)
end
block.call
def method(&block)
@bad
@example
where ‘yield` would do just as well.
This cop identifies the use of a `&block` parameter and `block.call`
def autocorrect(node)
def autocorrect(node) _receiver, _method, *args = *node new_source = String.new(YIELD) unless args.empty? new_source += if parentheses?(node) OPEN_PAREN else SPACE end new_source << args.map(&:source).join(', ') end new_source << CLOSE_PAREN if parentheses?(node) ->(corrector) { corrector.replace(node.source_range, new_source) } end
def on_def(node)
def on_def(node) blockarg_def(node) do |argname, body| next unless body blockarg_calls(body, argname) do |blockcall| add_offense(blockcall, :expression, format(MSG, argname)) end end end