我想通过将它们放在一个模块中来命名我的Ruby类。实际上,如果我决定发布我的Ruby gem以便类名不与另一个gem中的现有类冲突,这是一个好主意。我知道我可以为课程A::B
执行以下操作:
module A
class B
end
end
但是,上面的内容非常繁琐,因为我需要将所有类定义放在一个Ruby源文件中,以便将它们放在模块下。我宁愿将我的类定义保存在单独的源文件中,就像Java项目一样,那么当它们在单独的文件中定义时,如何将类添加到模块中呢?
答案 0 :(得分:8)
在这种情况下,公认的做法是将每个文件包装在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/)。