I also can not reproduce it. But it is possible that some kind of pearl redefines Kernel#require :
module Kernel alias_method :old_require, :require def require(str) old_modules = [] ObjectSpace.each_object(Module) {|m| old_modules << m } old_require(str) new_modules = [] ObjectSpace.each_object(Module) {|m| new_modules << m unless old_modules.include?(m) } new_modules end end
and when trying to demand
module DataProviders module Cached class Foo end end class Foo end end
You'll get
irb(main):012:0> require 'data_provider' => [DataProviders::Cached::Foo, DataProviders::Foo, DataProviders::Cached, DataProviders]
Vasiliy Ermolovich
source share