Deferrable Gratification (DG) facilitates asynchronous programming in Ruby, by helping create abstractions around complex operations built up from simpler ones. It helps make asynchronous code less error-prone and easier to compose. It also provides some enhancements to the Deferrable API. Features include: * fluent (aka chainable) syntax for registering multiple callbacks and errbacks to the same Deferrable. * a #bothback method for registering code to run on either success or failure. * a combinator library for building up complex asynchronous operations out of simpler ones.