Pregunta

¿Puedo pedir rubí o rubygems utilizar la última joya independientemente de su origen?

Como se menciona en la actualización esta pregunta , resulta que es el rubí usando una joya github mayores (hmcgowan-Roo 1.3.5) a través de una joya RubyForge más reciente que se ha instalado más recientemente (Roo 1.3.6).

Mi sospecha es que el duende mágico (ya sea rubí o rubygems) se ve en "h" antes de buscar en "r".

Puedo forzar la RubyForge uno para ser utilizado por hacer

gem "roo"

pero ¿es posible decir rubí / rubygems que estoy feliz de usar ya sea hmcgowan-roo o Roo, pero quiero que la última versión?

¿Fue útil?

Solución

No, no hay forma de desgracia. En lo que se refiere a RubyGems, no son la misma gema, por lo RubyGems no es capaz de determinar automáticamente que es la versión más reciente. A los efectos de la paranoia, la línea requerir debe considerarse no determinista si no hay una llamada al método joya y tiene varias versiones de la misma biblioteca instalada.

En general, desea que sus llamadas al método joya que se encuentra en un lugar diferente de su requiere de todos modos (esto permite que los archivos sean lazy-cargado), por lo que es perfectamente razonable tener un archivo actualizado con frecuencia que simplemente ejecuta una montón de llamadas al método joya para asegurar que tienes la versión correcta de todo. Además, en la producción, por lo general no quiere hacer "dame la última versión" porque la versión más reciente puede haber cambiado su API o renombrado algunos métodos o similares, y si no se ha probado en contra de ella, no lo hace saber si se va a romper. Siempre debe estar haciendo seguro de que usted está utilizando una versión específica conocida al trabajo de todas las bibliotecas de terceros.

Como autor de la biblioteca, por lo general dar a la gente acerca de una versión de uno o dos mano a mano si voy a hacer cambios que rompan el uso anterior de la API. Sin embargo, a veces la gente no se actualizan por un tiempo, y ser capturados por esto. Afortunadamente la mayoría de las personas tienen cuidado, y las cosas de la etapa. No ser el tipo que actualiza las bibliotecas directamente en la producción, sin ponerlos a prueba. : -)

Otros consejos

Usted podría utilizar el método de la gema para especificar cuál de ellos desea.

RubyGems Manual - Capítulo 4

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top