From: shasckaw Date: 2004-03-09T23:59:39+09:00 Subject: when a required module redefine another module => problem Here is the sample code: module SomeModule require 'set' class InModule include Enumerable def initialize @index=0 end def each if @index == 10 @index=0 else yield @index end end end end class OutModule include Enumerable def initialize @index=0 end def each if @index == 10 @index=0 else yield @index end end end in_module = SomeModule::InModule.new out_module = OutModule.new in_module_set = in_module.to_set p in_module_set # should raise NoMethodError exception out_module_set = out_module.to_set p out_module_set # # The fact is that it would be more adequate to have Enumerable modified in SomeModule only. This case is simple, but we can imagine more vicious sample codes, with some method redefined => it will affect the whole program! This is a problem, isn't it? What do you think about this? Lio