Gemfileとプラグインの改善

Discourse チーム、こんにちは
プラグインディレクトリ内の Gemfile と、必要に応じて外部の gem を追加するための興味深いソリューションをご提案します。

# プラグインの Gemfile を読み込む
Dir.glob File.expand_path("../plugins/*/{Gemfile}", __FILE__) do |file|
  eval_gemfile file
end

これをメインの Gemfile に追加すれば、プラグインからの Gemfile を読み込むことができます。
このソリューションについて議論しましょう。
追伸:eval_gemfile の DSL ドキュメントは https://apidock.com/ruby/v2_6_3/Bundler/Dsl/eval_gemfile です。

「いいね!」 2

それは興味深いですね!現時点では、プラグインは plugin.rb ファイルに再帰的な依存関係ツリー全体をリストすることで、gem を要求できます。例:

「いいね!」 2

ありがとうございます、まさに探していたものです。
ただし、私の判断の方が私にとって明確で理解しやすいと思います。
その理由(私見):

  1. plugin.rb がよりクリーンになります
  2. Gemfile が Rails 開発者にとってより理解しやすくなります。
「いいね!」 1

残念ながら、これによりロックファイルが常に変化するものとなり、それをソース管理に含めることになります。

Gem ファイルは便利ですが、デルタロックファイルを配信できるようになるまでは、この種のソリューションは機能しません。