design by contract ruby version