эквивалент Python «with» в Ruby

В Python оператор with используется, чтобы гарантировать, что код очистки всегда вызывается, независимо от генерируемых исключений или возвращаемых вызовов функций. Например:

with open("temp.txt", "w") as f:
    f.write("hi")
    raise ValueError("spitespite")

Здесь файл закрыт, даже если возникло исключение. Лучшее объяснение - здесь .

Есть ли эквивалент этой конструкции в Ruby? Или вы можете закодировать один, раз уж у Ruby есть продолжения?

12
задан Claudiu 6 October 2010 в 18:14
поделиться