我现在正在创建一个 jRuby gem,我可能需要向不同类型的用户公开不同的命令(来自 bin 文件夹)。这是创建不同 gem 的好标准吗,例如“_userX”或“_userY”?(而且 gem 名称可能与项目名称不同,我知道这不是标准)
所以我需要“mygem_for_admin_users”与“mygem_for_normal_users”之类的东西。
干杯
它确实有效,而且肯定有人这样做(例如:https ://github.com/mongodb/mongo-ruby-driver )。
这显然是非常主观的,但我个人觉得有一个与项目名称不匹配的 gemspec,或者单个项目中有多个 gemspec 是不好的做法。最终,如果它是解决问题的最干净的解决方案,那么它就是最干净的解决方案,你应该去尝试它,但首先要考虑其他解决方法:
您可以拥有一个基础 gem 和 2+ 个接口 gem,它们从基础 gem 中公开不同的命令集。
您可以以某种方式从库本身识别不同类别的用户,使所有命令都可用,但其中一些命令会受到限制,除非设置了正确的用户类型
您可以使用许多子命令(如 bundle 或 git)将所有内容构建到一个命令中,这些子命令对用户类型进行相同的推理
可能有更多选择。
TL;DR:这不是一个很好的做法,但人们这样做了,什么都不会着火。只要确保没有一种简单的方法可以首先避免它。