1 min read

Connaissez-vous la méthode Enumerable#pluck ?

Saviez-vous que la méthode `#pluck` pouvait s'utiliser avec un Enumerable ? Et bien moi non.

Dans mes projets RubyOnRails il m'est arrivé à plusieurs reprises de récupérer un tableau de Hash et de devoir le transformer pour ne retourner que certaines des clés qui m'étaient nécessaires.

Jusqu'ici j'avais pris l'habitude d'utiliser la méthode Enumerable#map pour parcourir mon tableau et de sélectionner pour chaque Hash les clés dont j'avais besoin.

grocery_list = [
  { name: 'Tomatoes', quantity: 5, comments: 'Take the red ones!' },
  { name: 'Oranges', quantity: 3, comments: 'From Spain' },
  # ...
]

grocery_names = grocery_list.map { |ingredient| ingredient[:name] }

Mais grâce à un article Santosh Wadghule, j'ai appris que la méthode #pluck pouvait aussi être utilisée pour extraire les clés présentes dans un tableau de Hash.

grocery_list = [
  { name: 'Tomatoes', quantity: 5, comments: 'Take the red ones!' },
  { name: 'Oranges', quantity: 3, comments: 'From Spain' },
  # ...
]

grocery_names = grocery_list.pluck(:name)

Liens

Rails adds Enumerable#pick method
Rails 6 adds a new method pick method in Enumerable module.