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
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