yield llama al bloque pasado a un método — transfiere el control al bloque, opcionalmente pasando valores a él, y luego reanuda el método. Es cómo los métodos invocan los bloques que se les dan, y el mecanismo detrás de la iteración de Ruby y muchos patrones elegantes.
yield básico — llamar al bloque dado
puts
puts
greet { puts }
