如何处理依赖于配置的gem依赖项?

时间:2013-08-29 09:47:10

标签: ruby-on-rails ruby rubygems

我目前正在构建一个内部gem,它将抽象出一些有关后台处理库的功能。这个gem的目标是删除一些重复的代码,跨越几个rails项目,并使更改库变得微不足道。

我希望用户能够在初始化程序中配置要使用的库(resque,sidekiq,延迟作业...)。问题是适配器gem应该处理所有依赖项。

我的问题是,这里的最佳做法是什么?我只看到两个选项:

  • 将所有受支持的库包含在适配器gem的依赖项中。 (将在服务器上安装不必要的软件。)

  • 不要包含任何依赖项,并指示用户根据活动配置在gemfile中包含某些依赖项。 (复制代码并可能导致人为错误。)

您认为哪种选择是最佳做法?我还缺少其他选择吗?

1 个答案:

答案 0 :(得分:4)

  1. 下载并安装gem不应导致所有受支持的库自动下载。
  2. 安装gem应该提供命令行命令来设置选项(例如,如果你的gem是foo,那么像foo setup bar-option)。运行此命令应创建一个配置文件,告诉您选择了哪个库,并在此时下载必要的库。
  3. 使用gem时,应查阅已创建的配置文件以供使用的库。
  4. 我猜这一切都应该在宝石中的rake文件中编程。