Miglioramenti a Gemfile e plugin

Ciao, team di Discourse,
vorrei proporvi una soluzione interessante per il Gemfile nella directory dei plugin e per l’aggiunta di gemme esterne, se necessarie.

# Carica i Gemfile dei plugin
Dir.glob File.expand_path("../plugins/*/{Gemfile}", __FILE__) do |file|
  eval_gemfile file
end

Se aggiungiamo questo al Gemfile principale, potremo caricare i Gemfile dai plugin.
Discutiamo di questa soluzione.
P.S. Documentazione DSL per eval_gemfile => https://apidock.com/ruby/v2_6_3/Bundler/Dsl/eval_gemfile

2 Mi Piace

È interessante! Al momento, i plugin possono richiedere gemme elencando l’intero albero delle dipendenze ricorsive nel file plugin.rb, ad esempio:

2 Mi Piace

Grazie, è proprio quello che stavo cercando.
Ma penso che la mia decisione sia più chiara e comprensibile per me.
Motivi (IMO):

  1. Lasciamo plugin.rb più pulito
  2. Gemfile è più comprensibile per gli sviluppatori Rails.
1 Mi Piace

Purtroppo questo significa che il file di lock diventerà un bersaglio mobile, e noi lo includiamo nel controllo del codice sorgente.

I file Gem sono utili, ma finché non potremo inviare file di lock delta, questo tipo di soluzione non funzionerà.