1

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

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

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

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

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

您认为哪个选项是最佳实践?我还有其他选择吗?

4

1 回答 1

4
  1. 下载和安装 gem 不会导致所有支持的库都被自动下载。
  2. 安装你的 gem 应该提供一个命令行命令来设置选项(例如,如果你的 gem 是foo,那么类似foo setup bar-option)。运行此命令应创建一个配置文件,告诉您选择了哪个库,并在此时下载必要的库。
  3. 当你的 gem 被使用时,它应该查阅为要使用的库创建的配置文件。

我想所有这些都应该在你的 gem 中的 rake 文件中编程。

于 2013-08-29T10:00:16.460 回答