来自同一个jRuby项目的多个宝石

时间:2012-04-04 00:21:11

标签: ruby gem jruby

我正在创建一个jRuby gem,我可能需要将不同的命令(从bin文件夹)暴露给不同类型的用户。这是为这个创建不同的宝石的好标准,例如“_userX”或“_userY”? (并且宝石名称可能与项目名称不同,我知道它不是标准名称)

所以我需要像“mygem_for_admin_users”和“mygem_for_normal_users”这样的东西。

干杯

1 个答案:

答案 0 :(得分:1)

它确实有效,并且确实有人这样做(例如:https://github.com/mongodb/mongo-ruby-driver)。

这显然是非常主观的,但我个人觉得在一个项目中使用与项目名称不匹配的gemspec或多个gemspec是不好的做法。最终,如果它是问题最干净的解决方案,那么它是最干净的解决方案,你应该去做,但首先要考虑其他方法:

  • 您可以拥有一个基础宝石和2个以上的界面宝石,这些宝石可以从基础宝石中公开不同的命令集。

  • 您可以以某种方式从库本身识别不同类别的用户,使所有命令可用,但除非设置了正确的用户类型,否则其中一些命令受限

  • 您可以将所有内容构建到一个命令中,其中包含许多子命令(如bundle或git),这些命令对用户类型执行相同的推理

可能有更多选择。

TL; DR:这不是很好的练习,但是人们会这样做,没有什么会着火。只要确保没有一种简单的方法可以先避免它。