Solo me estoy metiendo en la metaprogramación de Ruby. Los mixin/modules siempre logran confundirme.¿Cuál es la diferencia entre incluir y extender en Ruby?
- incluyen: mezclas en los métodos de módulo especificado como métodos de instancia en la clase de objetivos
- extienden: mezclas en los métodos de módulo especificado como métodos de clase en la clase de objetivos
Entonces, ¿la mayor diferencia es esta o está acechando un dragón más grande? p.
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!"
Consulte este enlace también: http://juixe.com/techknow/index.php/2006/06/15/mixins-in-ruby/ – Donato