J'essaie de comprendre le code Ruby suivant.self.send Appel itérativement sur un argument de hachage pour initialize()
Il ressemble à attrs
est un hachage qui est passé comme argument avec une valeur par défaut d'un hachage vide.
attrs.each
Ensuite, attrs.each
effectue une itération sur la clé, paires de valeurs dans le hachage (|k,v|
).
Quel effet est obtenu en appelant self.send
sur les éléments de la paire de valeurs clés au cours de cette itération?
def initialize(attrs = {}, *args)
super(*args)
attrs.each do |k,v|
self.send "#{k}=", v
end
end
+1 J'aime utiliser ce code pour flexibles création/initialisation d'objet. Voir ma réponse @ http://stackoverflow.com/questions/1778638/idiomatic-object-creation-in-ruby/5272354#5272354 – abe