如果我正在为已建立的库编写帮助器,我应该在其命名空间中创建一个TheirLibrary::MyHelper
模块,还是留下来创建自己的::TheirLibraryMyHelper
?
我认为可以预测一致,库通常具有在其命名空间中添加扩展的先例,例如Spec::Rails
,它是现有::Spec
命名空间中RSpec的rails助手的插件
另一方面,我不觉得我“拥有”其他作者名称空间,所以我是否应该为其添加子名称空间?
答案 0 :(得分:1)
我会远离他们的命名空间(无论你最终选择命名你的扩展命名空间),因为这意味着你不会意外地碰到他们决定要做的事情。
答案 1 :(得分:0)
环顾四周,我注意到“插件”或“扩展”宝石的惯例是必需的:
require 'coolthing/plugin'
,对应于命名空间Coolthing::Plugin
而其他项目
require 'coolthing-plugin'
,对应于唯一的命名空间CoolthingPlugin
通常只有那些“官方”的内容嵌入到原始命名空间中。那些来自不同方的后续添加内容应该使用自己的命名空间。