context ======= Some resources, such as open files, have lifetimes which are better managed by the user than by the garbage collector. The context module provides a Context class that may be subclassed to assist in managing the lifetime of such resources. .. _stdlib_context_Context: Context ------- The Context class may be subclassed by a resource with a finite lifetime. Such a resource may be passed to ``Context.with``, which will automatically call ``close`` on the subclass regardless of the outcome of the context function. .. code-block:: wren import "context" for Context class MyResource is Context { // ... close() { System.print("closed!") } } Context.with(MyResource.open()) {|res| res.do_work() } static with(res, fn) ++++++++++++++++++++ Passes the given resource to the given function, then call ``res.close()``. The resource will be closed regardless of the outcome of the function (e.g. aborting with an error).