Sto cercando di capire il seguente codice Ruby.Chiamare self.send iterativamente su un argomento hash da inizializzare()
Sembra che attrs
sia un hash che viene passato come argomento con un valore predefinito di un hash vuoto.
Quindi attrs.each
itera sulla chiave, coppie di valori nell'hash (|k,v|
).
Che effetto si ottiene chiamando lo self.send
sugli elementi della coppia di valori chiave durante questa iterazione?
def initialize(attrs = {}, *args)
super(*args)
attrs.each do |k,v|
self.send "#{k}=", v
end
end
+1 Mi piace usare questo codice per flessibili creazione/inizializzazione di oggetti. Vedi la mia risposta @ http://stackoverflow.com/questions/1778638/idiomatic-object-creation-in-ruby/5272354#5272354 – abe