On Mon, Apr 02, 2012 at 05:10:50AM +0900, Eric Hodel wrote:
> home :: https://github.com/drbrain/return_bang
> rdoc :: http://docs.seattlerb.org/return_bang
> bugs :: https://github.com/drbrain/return_bang/issues
>
> return_bang implements non-local exits for methods.  As a bonus, you also get
> exception handling that ignores standard Ruby's inflexible begin; rescue;
> ensure; end syntax.
>
> Use return_bang to exit back to a processing loop from deeply nested code, or
> just to confound your enemies *and* your friends!  What could possibly go
> wrong?
>
> === 1.1 / 2012-04-01
>
> * Minor enhancements
>   * Added raise! to raise exceptions
>   * Added rescue! to rescue exceptions raised
>   * Added ensure! to always execute a block of code to perform cleanup
>

Your projects looks like an delimited continuation implementation of shift/reset operators
suggested by [1].


[1]: Olivier Danvy and Andre Filinski (1990). "Abstracting Control". LISP and Functional Programming: 151160. doi:10.1145/91556.91622. ISBN 089791368X

--
Ray