В чем разница между включением и расширением в Ruby?

Просто разбираюсь в метапрограммировании Ruby. Миксин / модули всегда меня смущают.

включают: смешивает в указанных методах модуля какметоды экземпляра в целевом классепростираться: смешивает в указанных методах модуля какметоды класса в целевом классе

Значит, главное отличие в этом или скрывается больший дракон? например

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!"

Ответы на вопрос(6)

Ваш ответ на вопрос