【发布时间】:2017-09-30 20:19:06
【问题描述】:
我有一个文件SomethingClass.rb,如下所示:
class SomethingClass
def initialize
puts "Hello World"
end
end
我想require 文件SomethingClass.rb,并使SomethingClass 成为模块SomethingModule 的一部分无需更改文件。
另外,我想完全避免使 SomethingClass 成为该模块外部命名空间的一部分。换句话说,我想require 文件,我的应用程序的其余部分不应该改变,除了SomethingModule 将被定义。
这不起作用(我假设因为require 在Kernel 范围内执行):
module SomethingModule
require './SomethingClass.rb'
end
这在 Ruby 中可行吗?
【问题讨论】:
-
除非我误解了这个问题,否则这似乎与包含另一个文件中需要的类定义的文件没有任何关系。假设您有一个文件定义了一个类和一个模块(不是模块中的一个类)。我相信您希望在不更改类定义的情况下将类移动到模块内。那是对的吗?如果是这样,这就是问题的本质吗?
-
@CarySwoveland 是的,没错。我用
require提出了这个问题,因为这是我打算使用它的方式。我不确定使用require是否可以使解决方案成为可能,而不是把一个类移到一个模块中。
标签: ruby module namespaces