An elegant state machine for your ruby objects.