When you reopen a module that is included in another module that is included in a class, the new material you define does not make it to the class. This fixes that.
module M1; end module M2 def foo; "FOO"; end end class C include M1 end module M1 include M2 end c = C.new c.foo NoMethodError: undefined method `foo' for #<C:0x5e89a4> from (irb):12
# File lib/spec/example/module_reopening_fix.rb, line 27 def child_modules @child_modules ||= [] end
Generated with the Darkfish Rdoc Generator 2.