Específicamente, la gema ruby-oci8. Tengo 1.0.7 y 2.0.4 instalados. Quiero 1.0.7.¿Cómo necesito una versión específica de una gema de rubí?
Puedo simplemente requerir oci8, pero no obtengo la versión que quiero.
irb(main):001:0> require 'oci8'
=> true
irb(main):002:0> OCI8::VERSION
=> "2.0.4"
que puede requerir el uso de la ruta completa al archivo, que funciona, pero no va a ser portátil:
irb(main):001:0> require 'C:\Ruby\lib\ruby\gems\1.8\gems\ruby-oci8-1.0.7-x86-mswin32-60\lib\oci8'
=> true
irb(main):002:0> OCI8::VERSION
=> "1.0.7"
que puede utilizar el comando joya para pedir la versión que yo quiero, pero no parece cargar en realidad la biblioteca:
irb(main):001:0> gem 'ruby-oci8', :lib=>'oci8', :version=>'=1.0.7'
=> true
irb(main):002:0> OCI8::VERSION
NameError: uninitialized constant OCI8
from (irb):2
sin duda, favorecer este último enfoque, si se carga la biblioteca, en lugar de que se confirme que está presente en mi sistema. ¿Qué me estoy perdiendo?
aparece require_gem ser una sintaxis obsoleta, reemplazada por el comando gema al que hice referencia en el tercer ejemplo de mi pregunta (estoy usando rubygems 1.3.5). Pero su sugerencia me puso en el hilo en http://www.ruby-forum.com/topic/109100, lo que indica que primero debo emitir el comando gem, y luego requerir la gema, como: gem 'ruby -oci8 ',: lib =>' oci8 ',: versión =>' = 1.0.7 '; requiere 'oci8' Pero eso tampoco funciona para mí, todavía termino con 2.0.4 cargado. Sospecho que estoy bloqueado por la diferencia entre el nombre de la gema (ruby-oci8) y el nombre del archivo para cargar (oci8). – KenB