【问题标题】:Multiple gems from same jRuby project来自同一个 jRuby 项目的多个 gem
【发布时间】:2012-04-04 00:21:11
【问题描述】:

我现在正在创建一个 jRuby gem,我可能需要向不同类型的用户公开不同的命令(来自 bin 文件夹)。这是创建不同 gem 的好标准吗,例如“_userX”或“_userY”? (而且gem名称可能与项目名称不同,我知道这不是标准)

所以我需要“mygem_for_admin_users”与“mygem_for_normal_users”之类的东西。

干杯

【问题讨论】:

  • 你能解释一下你想要做什么吗?例如,您是说您想要 mygem_freeware 与 mygem_paid 之类的 gem,还是更像 mygem_for_admin_users 与 mygem_for_normal_users 之类的 gem?
  • 是的,更像 mygem_for_admin_users 与 mygem_for_normal_users

标签: ruby gem jruby


【解决方案1】:

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

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

  • 您可以拥有一个基础 gem 和 2 个以上的接口 gem,它们从基础 gem 公开不同的命令集。

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

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

可能还有更多选择。

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

【讨论】:

    猜你喜欢
    • 2021-12-21
    • 2010-10-20
    • 2018-05-06
    • 1970-01-01
    • 1970-01-01
    • 2016-06-15
    • 2016-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多