global

def with_method_transaction(meth_name, target=TOPLEVEL_BINDING)

def with_method_transaction(meth_name, target=TOPLEVEL_BINDING)
  target = Pry.binding_for(target)
  temp_name = "__pry_#{meth_name}__"
  target.eval("alias #{temp_name} #{meth_name}")
  yield
  target.eval("alias #{meth_name} #{temp_name}")
ensure
  target.eval("undef #{temp_name}") rescue nil
end