Savez-vous ce que fait la ligne de code Ruby suivante dans une application Rails ?


%w(toto titi tata).map(&:upcase)

Et bien la même chose que cette ligne ci (mais en un peu plus verbeux) :


%w(toto titi tata).map {|value| value.upcase}

P’tite explication : les deux lignes précédentes permettent de mettre en majucule (grâce à la méthode upcase) les chaines de caractères présentes dans le tableau et de retourner un tableau contenant ces nouvelles chaines de caractères en majuscule.

Tableau avant :


["toto", "titi", "tata"]

Tableau après :


["TOTO", "TITI", "TATA"]

Le passage d’une Proc par Symbol est possible depuis la version 1.1.0 de Rails et grâce plus particulièrement à Active Support.

Vous le saviez ?

En savoir plus : PragDave