Alors, je voudrais pouvoir faire un appelarguments en méthodes d'instance en rubis
x = MyClass.new('good morning', 'good afternoon', 'good evening', 'good night',
['hello', 'goodbye'])
qui ajouterait des méthodes à la classe dont les valeurs sont les valeurs des arguments. Alors maintenant:
p x.methods #> [m_greeting, a_greeting, e_greeting, n_greeting,
r_greeting, ...]
Et
p x.m_greeting #> "good morning"
p x.r_greeting #> ['hello', 'goodbye']
Je me rends compte que ce genre de quelles variables par exemple, sont à faire (et que si je voulais immuable je pouvais les rendre constantes congelés) mais, pour des raisons au-delà de mon contrôle, j'ai besoin de faire des méthodes à la place.
Merci!
BTW: J'ai essayé
def initialize(*args)
i = 0
%w[m_a, m_b, m_c].each do |a|
self.class.send(:define_method, a.to_s, Proc.new { args[i] })
i+=1
end
end
Mais qui a fini par donner à chaque méthode la valeur du dernier argument.
ah posté pendant que je tapais; \ –