В Python оператор with
используется, чтобы гарантировать, что код очистки всегда вызывается, независимо от генерируемых исключений или возвращаемых вызовов функций. Например:
with open("temp.txt", "w") as f:
f.write("hi")
raise ValueError("spitespite")
Здесь файл закрыт, даже если возникло исключение. Лучшее объяснение - здесь .
Есть ли эквивалент этой конструкции в Ruby? Или вы можете закодировать один, раз уж у Ruby есть продолжения?