Supposons que vous avez une méthode next_row qui vous renvoie la ligne suivante d'un tableau calculée à la volée et que vous voulez pouvoir récupérer chaque ligne de ce tableau grâce à each. Il va vous falloir ré-écrire each pour qu'elle itére à l'infini sur votre tableau dynamique.

Voici comment faire :

def each
  0.upto(1.0/0.0) { yield next_row }
end
	

Un rapide test dans IRB nous montre qu'effectivement l'expression 1.0/0.0 est évaluée comme l'infini :

MacBook:~ nico$ irb
>> 1.0/0.0
=> Infinity
	

Notre version de each va donc itérer à l'infini ! Magique :-)