Je sais que je peux faire ce qui suit, et ce n’est que 3 lignes:
class << self
alias :generate :new
end
Mais par curiosité, existe-t-il un moyen plus simple (sans point-virgule) comme:
class_alias :generate, :new
Je sais que je peux faire ce qui suit, et ce n’est que 3 lignes:
class << self
alias :generate :new
end
Mais par curiosité, existe-t-il un moyen plus simple (sans point-virgule) comme:
class_alias :generate, :new
Depuis Ruby 1.9, vous pouvez utiliser la méthode singleton_class
pour accéder à l'objet singleton d'une classe. De cette façon, vous pouvez également accéder à la méthode alias_method
. La méthode elle-même est privée, vous devez donc l'invoquer avec send
. Voici votre seul paquebot:
self.singleton_class.send(:alias_method, :generate, :new)
Gardez toutefois à l'esprit que alias
ne fonctionnera pas ici.
Je ne crois pas qu'il existe une classe spécifique à la version de l' alias
. J'ai l'habitude de l'utiliser comme vous l'avez déjà démontré.
Cependant, vous pouvez vouloir étudier la différence entre alias
et alias_method
. C'est l'une de ces zones difficiles de ruby qui peuvent être un peu contre-intuitif. En particulier, le comportement de l' alias
à l'égard des descendants n'est probablement pas ce que vous attendez.
Espérons que cette aide!
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.