这是bar.rb:
module Bar
end
现在,在foo.rb中,我想将其作为Foo
. 我试过这个
module Foo
load './bar.rb'
end
但这只是加载bar.rb,就好像它在全局命名空间中一样。使用上面的代码:
::Bar # => Bar
Foo::Bar # => NameError: uninitialized constant Foo::Bar
我正在寻找一种从模块上下文中加载文件的方法,以便切换上述结果 - 已Foo::Bar
定义但未定义::Bar
。基本上,它的结果类似于如果代码是这样的:
module Foo
module Bar
end
end
::Bar # => NameError: uninitialized constant Bar
Foo::Bar # => Foo::Bar
这可能吗?我正在使用 Ruby 1.9.3