Pregunta Rubygems: ¿Cómo agrego la dependencia específica de la plataforma?


He una gema de rubí que tiene diferentes dependencias para cada sistema operativo. Tengo que escribirlos explícitamente todos:

En Mac OS X:

gem install livereload

en Linux:

gem install rb-inotify livereload

en Windows:

gem install eventmachine-win32 win32-changenotify win32-event livereload

¿Puedo modificar un gemspec un poco para que las instrucciones de instalación se vean como simples gem install livereload para cada sistema operativo?


32
2018-01-04 17:36


origen


Respuestas:


La forma correcta de hacer esto se describe aquí. Dado que gemspec se evalúa en el momento del paquete, debe hacerlo en una extensión nativa. No te preocupes, no es tan aterrador ya que es solo el código de Ruby (no compila C ni nada).

Actualmente estamos utilizando este enfoque para algunas herramientas de cliente para OpenShift (fuente). Luego, en su Gemspec / Rakefile, en lugar de agregar dependencias, debería agregar una extensión. Tenga en cuenta que el archivo debe ser nombrado ext/mkrf_conf.rb para que esto funcione


20
2018-04-20 15:32