Je travaille actuellement sur le livre Gregory Brown Ruby Best Practices. Au début, il parle de refactoriser certaines fonctionnalités des méthodes d'aide sur une classe liée, à certaines méthodes sur le module, puis a eu le module extend self
.Quand utiliser un module et quand utiliser une classe
N'avait pas vu auparavant, après un google rapide, a découvert que extend self
sur un module permet de voir les méthodes définies sur le module, ce qui est logique.
Maintenant, ma question est quand voulez-vous faire quelque chose comme ça
module StyleParser
extend self
def process(text)
...
end
def style_tag?(text)
...
end
end
puis faire référence dans les tests avec
@parser = Prawn::Document::Text::StyleParser
par opposition à quelque chose comme ça?
class StyleParser
def self.process(text)
...
end
def self.style_tag?(text)
...
end
end
est-ce que vous pouvez l'utiliser comme un mixin? ou y a-t-il d'autres raisons que je ne vois pas?
Exactement ce que je cherchais :-) –