Улучшения Gemfile и плагинов

Привет, команда Discourse!

Хочу предложить вам интересное решение для Gemfile в директории плагинов и добавления внешних gems при необходимости:

# Загрузка Gemfile плагинов
Dir.glob File.expand_path("../plugins/*/{Gemfile}", __FILE__) do |file|
  eval_gemfile file
end

Если мы добавим это в основной Gemfile, мы сможем загружать Gemfile из плагинов.
Давайте обсудим это решение.

P.S. Документация DSL для eval_gemfile => https://apidock.com/ruby/v2_6_3/Bundler/Dsl/eval_gemfile

Это интересно! В настоящее время плагины могут подключать библиотеки (gems), указывая полное дерево рекурсивных зависимостей в файле plugin.rb, например:

Спасибо, это именно то, что я искал.
Но мне кажется, что моё решение более чёткое и понятное для меня.
Причины (на мой взгляд):

  1. Файл plugin.rb остаётся более чистым.
  2. Gemfile более понятен разработчикам Rails.

К сожалению, это означает, что файл блокировки будет постоянно меняться, а мы включаем его в систему контроля версий.

Файлы Gem удобны, но пока мы не сможем отправлять дельта-файлы блокировки, такое решение не будет работать.