我目前正在构建一个内部gem,它将抽象出一些有关后台处理库的功能。这个gem的目标是删除一些重复的代码,跨越几个rails项目,并使更改库变得微不足道。
我希望用户能够在初始化程序中配置要使用的库(resque,sidekiq,延迟作业...)。问题是适配器gem应该处理所有依赖项。
我的问题是,这里的最佳做法是什么?我只看到两个选项:
将所有受支持的库包含在适配器gem的依赖项中。 (将在服务器上安装不必要的软件。)
不要包含任何依赖项,并指示用户根据活动配置在gemfile中包含某些依赖项。 (复制代码并可能导致人为错误。)
您认为哪种选择是最佳做法?我还缺少其他选择吗?
答案 0 :(得分:4)
foo
,那么像foo setup bar-option
)。运行此命令应创建一个配置文件,告诉您选择了哪个库,并在此时下载必要的库。我猜这一切都应该在宝石中的rake文件中编程。