Supposons que j'ai un module:Comment accéder à un module à partir d'une méthode d'instance dans Ruby?
module M
def self.foo
...
end
def bar
...
end
end
Module M
est inclus dans une classe.
class A
include M
end
Je veux appeler foo
de bar
, qui sera éventuellement appelé une instance de A
. Quelle est la meilleure façon de le faire à l'intérieur bar
?
Bien sûr, je peux juste dire M.foo
, mais c'est la duplication du nom du module, ce qui est inutile.
_ « Je veux appeler foo bar » _ - s'il y avait un 'A.foo' en plus de' M.foo' qui 'foo' voudriez-vous appeler? – Stefan
Pourquoi ne voulez-vous pas utiliser 'M.foo'? Cela me semble la chose logique à faire. Il semble étrange d'avoir à la fois la méthode de classe et la méthode d'instance dans le même module, considérant que vous voulez invoquer le premier et inclure le second. –
Il n'y a aucune relation entre une instance de la classe singleton de 'A' et' M'. En particulier, la classe singleton de 'M' n'est pas dans la chaıne d'héritage de' A'. –