Ruby a aussi une boucle for !
C’est bien du Ruby ! Le ; n’est pas nécessaire et était là pour la confusion avec le : de Python.

La boucle for délègue l’appel à each. On ne peut donc itérer qu’avec des Enumerable. Et tout comme each la boucle for renvoie l’Enumerable. La syntaxe sur une ligne n’existe pas contrairement au while.

La différence majeur avec each est qu’elle ne crée pas de nouveau scope pour les variables. Attention donc si on a en besoin dans un autre contexte.

Le lien vers la documentation Ruby de for.