Me gustaría instalar una gema (JSON) en el lado del cliente, pero solo si no se ha instalado ya (algunas distribuciones de Ruby 1.9 tienen incluido JSON).Instalar gema bajo demanda
No pude encontrar una pista sobre cómo hacerlo desde gem help install
. gem install json
y funcionando en un sistema Windows con Ruby 1.9 instalado (con JSON incluido) da como resultado
ERROR: Error installing json:
The 'json' native gem requires installed build tools.
- se trata de instalarlo ignorando el hecho de que la gema ya está ahí.
Y no puedo hacer bash trucos como grepping gem list
salida porque el cliente podría ser Windows.
¿Cuál es la forma multiplataforma de instalar una gema solo si ya no está presente en el sistema?
Genial, lo probará mañana y aceptará su respuesta ya que parece ser la solución de trabajo. El único problema es que 'json' puede ser proporcionado por dos gemas: json_pure y json, por lo que dependiendo de la variante que necesites, harás 'require 'json/ext'' o' require' json/pure''. –
Sí. En realidad, creo que esta no es la mejor manera ya que tenemos que eliminar manualmente la ruta de $ LOAD_PATH. Sería mejor si json/ext o json/pure no está realmente incluido. – Tomato
Estoy ejecutando el proyecto de una sola línea desde la línea de comandos, así que no necesito quitar nada, así que eso es lo que realmente necesitaba ¡gracias! –