Ruby命名空间礼仪和惯例

时间:2012-06-21 18:18:37

标签: ruby namespaces naming-conventions

如果我正在为已建立的库编写帮助器,我应该在其命名空间中创建一个TheirLibrary::MyHelper模块,还是留下来创建自己的::TheirLibraryMyHelper

我认为可以预测一致,库通常具有在其命名空间中添加扩展的先例,例如Spec::Rails,它是现有::Spec命名空间中RSpec的rails助手的插件

另一方面,我不觉得我“拥有”其他作者名称空间,所以我是否应该为其添加子名称空间?

2 个答案:

答案 0 :(得分:1)

我会远离他们的命名空间(无论你最终选择命名你的扩展命名空间),因为这意味着你不会意外地碰到他们决定要做的事情。

答案 1 :(得分:0)

环顾四周,我注意到“插件”或“扩展”宝石的惯例是必需的:

require 'coolthing/plugin',对应于命名空间Coolthing::Plugin

而其他项目

require 'coolthing-plugin',对应于唯一的命名空间CoolthingPlugin

通常只有那些“官方”的内容嵌入到原始命名空间中。那些来自不同方的后续添加内容应该使用自己的命名空间。