Я объясню, что я ищу в коде, так как это, возможно, наиболее красноречиво:
module Mixin
def method
puts "Foo"
end
end
class Whatever
include Mixin
end
w = Whatever.new
w.method
=> "Foo"
# some magic here
w2 = Whatever.new
w.method
=> NoMethodError
Я попытался просто определить модуль Mixin с помощью remove_const, но это, похоже, не имеет никакого значения для What what. Я предположил, что #include просто добавил ссылку на модуль в цепочку разрешения метода класса, но это поведение не согласуется с этим.
Может ли кто-нибудь сказать мне, что включает в себя фактически за кулисами, и как это сделать?