class Resource1
def dispose
@disposed = true
end
def disposed?
@disposed
end
end
module Kernel
def using1(resource)
begin
yield
ensure
resource.dispose
end
end
end
r = Resource1.new
using1(r) {}
puts r.disposed?
r1 = Resource1.new
begin
using1(r1) {raise Exception}
rescue Exception
end
puts r1.disposed?