class RuboCop::Cop::Style::AutoResourceCleanup
end
# …
File.open(‘file’) do |f|
# good
f = File.open(‘file’)
# bad
@example
resource cleanup.
accepting version of a method that does automatic
Checks for cases when you could use a block
def cleanup?(node)
def cleanup?(node) parent = node.parent node.block_argument? || (parent && (parent.block_type? || !parent.lvasgn_type?)) end
def on_send(node)
def on_send(node) TARGET_METHODS.each do |target_class, target_method| next if node.method_name != target_method target_receiver = s(:const, nil, target_class) next if node.receiver != target_receiver next if cleanup?(node) add_offense(node, message: format(MSG, class: target_class, method: target_method)) end end