2012-06-21 74 views
2

如果我正在为已建立的库编写帮助程序,是否应该在其名称空间中创建TheirLibrary::MyHelper模块,或者留下来制作我自己的::TheirLibraryMyHelperRuby命名空间礼仪和约定

我想是可以预见一致,图书馆往往有添加扩展自己的命名空间,如Spec::Rails,这是导轨佣工的RSpec中的一个插件,在现有::Spec命名空间的先河。另一方面,我不觉得我“拥有”其他作者的命名空间,所以我应该有任何业务向它添加子命名空间吗?

+1

我会叫它'TheirLibraryHelpers :: MyModule'。说实话,Rails干扰图书馆甚至是核心Ruby的方式并不适合第三方库(如果不是说,特别糟糕)。 –

回答

1

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

0

环顾四周,我注意到,该公约为“插件”或需要“扩展名”宝石为:

require 'coolthing/plugin',而其他项目

require 'coolthing-plugin'对应的命名空间Coolthing::Plugin

这对应于唯一名称空间CoolthingPlugin

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