voy a explicar lo que estoy buscando en el código como eso es probablemente la más sucinta:¿Cómo puedo revertir de rubí incluyen la función
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
que había intentado apenas undefining el módulo Mixin usando remove_const, pero este doesn No parece hacer ninguna diferencia en lo que sea. Supuse que #include acaba de agregar una referencia al módulo en la cadena de resolución de métodos de la clase, pero este comportamiento no concuerda con eso.
¿Alguien puede decirme qué incluye realmente detrás de las escenas, y cómo revertir esto?
La razón para querer esto es porque una gema que estamos escribiendo para merb reemplazará a los asistentes de formulario existentes, y tenemos que eliminarlos de alguna manera. Por lo tanto, no puedo alterar realmente cómo se incluye el primer módulo, solo lo que se puede hacer después. – Glenjamin
Posible duplicado de [¿Es posible revertir el módulo incluido en una clase?] (Http://stackoverflow.com/questions/1019477/is-it-possible-to-reverse-the-included-module-in-a -class) – lulalala