Esto se produce debido a que el directorio de instalación de la gema utilizado por el comando gem
, ve al utilizar gem env
, se establece en algo así como:¿Por qué estamos instalando Ruby 1.9.2/1.9.3 gems en una carpeta 1.9.1?
<base_ruby_dir>/lib/ruby/gems/1.9.1
Mi pregunta es ¿por qué?
no debería llamarse la carpeta:
<base_ruby_dir>/lib/ruby/gems/1.9.x
o
<base_ruby_dir>/lib/ruby/gems/1.9
o de lo contrario no podría haber uno por cada versión de Ruby, como:
c:/ruby191/lib/ruby/gems/1.9.1
c:/ruby192/lib/ruby/gems/1.9.2
c:/ruby193/lib/ruby/gems/1.9.3
No
un problema crítico que sé, me estaba preguntando.
Ok, entiendo eso. Entonces 1.9.1 significa que la gema cumple con la interfaz C utilizada en Ruby 1.9.1? Este tipo de expone detalles de implementación ¿no? Desde el punto de vista de un usuario final de una joya, ¿por qué me importa? ¿Y alguna vez veré dos carpetas una al lado de la otra como 1.9.1 y 1.9.4? Si no, otra vez, ¿por qué me importa? – Ben
Derecha. ¡La C Api * definitivamente * expone detalles de implementación! Los usuarios de gemas no deberían preocuparse por la ruta. Respuesta editada para las dos últimas preguntas –
Para mí, la pregunta es sobre la convención de nomenclatura de directorios. Si sabemos que un cambio en la API C de Ruby va a provocar la recompilación de todas las gemas que usan esa versión de Ruby, entonces tengo una carpeta llamada 1.9.1 con gemas en, * o * una carpeta llamada 1.9.2 (o lo que sea). Si no puedo tener ambos (para una versión de Ruby), entonces 1.9.x sería más sensato.Nunca he visto la misma carpeta utilizada para almacenar las gemas de varias versiones de Ruby. ¿Es realmente un caso de uso real? – Ben