在单独的文件中定义时,将Ruby类添加到模块

我想通过将它们放在一个模块中来命名我的Ruby类。 实际上,如果我决定发布我的Ruby gem以使类名不与另一个gem中的现有类冲突,这是一个好主意。 我知道我可以为A::B类做以下事情:

 module A class B end end 

但是,上面的内容非常麻烦,因为我需要将所有类定义放在一个Ruby源文件中,以便将它们放在模块下。 我宁愿将我的类定义保存在单独的源文件中,就像Java项目一样,那么当它们在单独的文件中定义时,如何将类添加到模块中呢?

在这种情况下,公认的做法是将每个文件包装在module块中

 # a/b.rb module A class B end end # a/c.rb module A class C end end 

顺便说一句。 由于常量的解析方式,建议使用上面引用的长格式而不是class A::B

http://blog.honeybadger.io/avoid-these-traps-when-nesting-ruby-modules/ )。