2012-06-21 72 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

通常只有那些「官方」才嵌入到原始名稱空間中。那些來自不同方的後續添加應該使用他們自己的命名空間。