Mejoras en Gemfile y plugins

Hola, equipo de Discourse:

Quiero ofrecerles una solución interesante para el Gemfile en el directorio de plugins y para agregar gems externas si son necesarias.

# Cargar los Gemfiles de los plugins
Dir.glob File.expand_path("../plugins/*/{Gemfile}", __FILE__) do |file|
  eval_gemfile file
end

Si añadimos esto al Gemfile principal, podremos cargar los Gemfiles de los plugins.

Hablemos de esta solución.

P.D. Documentación de la DSL para eval_gemfile => https://apidock.com/ruby/v2_6_3/Bundler/Dsl/eval_gemfile

2 Me gusta

¡Eso es interesante! Por el momento, los plugins pueden requerir gemas listando todo el árbol de dependencias recursivas en el archivo plugin.rb, por ejemplo:

2 Me gusta

Gracias, esto es lo que estaba buscando.
Pero creo que mi decisión es más clara y comprensible para mí.
Razones (en mi opinión):

  1. Dejamos plugin.rb más limpio.
  2. Gemfile es más comprensible para los desarrolladores de Rails.
1 me gusta

Desafortunadamente, esto significa que el archivo de bloqueo se convertirá en un objetivo móvil, y lo incluimos en el control de versiones.

Los archivos Gem son agradables, pero hasta que podamos enviar archivos de bloqueo delta, este tipo de solución no funcionará.