2012-04-04 65 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:这不是伟大实践,但人们做什么都不会着火。只要确保没有一种简单的方法可以避免它。