Juste en train de faire la métaprogrammation de Ruby. Les mixin/modules parviennent toujours à me confondre.Quelle est la différence entre include et extend dans Ruby?
- comprennent: Les mélanges dans les méthodes de module spécifié comme méthodes d'instance dans la classe cible
- étendent: Les mélanges dans des procédés de module spécifié comme méthodes de classe dans la classe cible
Est-ce que la différence majeure est juste ceci ou est-ce qu'un plus grand dragon se cache? par exemple.
module ReusableModule
def module_method
puts "Module Method: Hi there!"
end
end
class ClassThatIncludes
include ReusableModule
end
class ClassThatExtends
extend ReusableModule
end
puts "Include"
ClassThatIncludes.new.module_method # "Module Method: Hi there!"
puts "Extend"
ClassThatExtends.module_method # "Module Method: Hi there!"
Cochez également ce lien: http://juixe.com/techknow/index.php/2006/06/15/mixins-in-ruby/ – Donato