2012-04-04 23 views
0

我正在創建一個jRuby寶石,我可能需要向不同類型的用戶公開不同的命令(從bin文件夾)。爲此創建不同的寶石是一個很好的標準,比如「_userX」或「_userY」? (而且寶石名稱可能與項目名稱不同,我知道它不是標準)來自同一個jRuby項目的多個寶石

所以我需要像「mygem_for_admin_users」和「mygem_for_normal_users」之類的東西。

乾杯

+0

你能解釋一下你想做什麼嗎?例如,你說你要像mygem_freeware與mygem_paid寶石,或更像mygem_for_admin_users與mygem_for_normal_users? – joelparkerhenderson 2012-04-04 01:24:56

+0

是啊更像mygem_for_admin_users與mygem_for_normal_users – sebarmeli 2012-04-04 01:26:40

回答

1

它肯定的作品,並有一定的人這樣做(例如:https://github.com/mongodb/mongo-ruby-driver)。

這顯然是非常主觀的,但我個人覺得這是不好的做法,有一個gemspec並不在一個單一的項目相匹配的項目名稱,或多個gemspecs。最後,如果它是最乾淨的解決問題的方法,它是乾淨的解決方案,你應該去,但首先考慮的繞了其他方式:

  • 你可以有一個基本的寶石和2+接口從基礎寶石中揭示不同組命令的寶石。

  • 你能以某種方式識別不同類別的用戶從庫本身,使所有命令可用,但他們中的一些限制,除非正確的用戶類型設置

  • 你可以建立萬事成一個命令很多子命令(如bundle或git)對用戶類型做了相同的推理

可能有更多選項。

TL; DR:這不是偉大實踐,但人們做什麼都不會着火。只要確保沒有一種簡單的方法可以避免它。