Table des matières

Ruby : Snippets d'apprentissage

Vous trouverez ici quelques snippets (petits morceaux de code) en Ruby facilitant l'apprentissage de certaines subtilités de Ruby : syntaxes particulières, résolution élégante de problèmes courants

Utiliser un bloc passé en paramètre

La classe MonTableau contient une méthode sum(param) qui permet soit l'utilisation d'un calcul interne à la méthode, soit le passage d'un bloc qui contient un autre calcul. Ce bloc est alors pris en compte par la méthode pour son calcul.

class MonTableau
  attr_reader :array
 
  def initialize(array)
    @array = array
  end
 
  def sum(valeur_initiale = 0)
    # Si aucun bloc n'est passé, le calcul est une simple addition de tous les membres de array
    return array.inject(:+) + valeur_initiale unless block_given?
    # La méthode a reçu un bloc et utilise donc ce bloc pour réaliser le calcul
    sum = valeur_initiale
    array.each {|n| sum += yield(n) }
    sum
  end
end

Explications