私は現在、バックグラウンド処理ライブラリに関するいくつかの機能を抽象化する内部宝石を構築しています。この gem の目的は、いくつかの重複したコードを削除し、いくつかの Rails プロジェクトにまたがって、ライブラリを簡単に変更できるようにすることです。
ユーザーが初期化子で使用するライブラリ (resque、sidekiq、遅延ジョブなど) を構成できるようにしたいと考えています。問題は、アダプター gem がすべての依存関係を処理する必要があることです。
私の質問は、ここでのベストプラクティスは何ですか? 次の 2 つのオプションしか表示されません。
サポートされているすべてのライブラリを依存関係としてアダプター gem に含めます。(不要なソフトウェアをサーバーにインストールします。)
依存関係を一切含めず、アクティブな構成に従って gemfile に特定の依存関係を含めるようにユーザーに指示します。(コードが重複し、人的エラーにつながる可能性があります。)
ベストプラクティスとしてどのオプションを検討しますか? 私が見逃している他のオプションはありますか?