ruby version gem oci8

ruby - ¿Cómo necesito una versión específica de una gema de rubí?



version oci8 (2)

Específicamente, la gema ruby-oci8. Tengo 1.0.7 y 2.0.4 instalados. Quiero 1.0.7.

Solo puedo exigir 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"

Puedo 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"

Puedo usar el comando gem para solicitar la versión que quiero, pero no parece que cargue realmente 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

Definitivamente, preferiría este último enfoque si cargara la biblioteca, en lugar de simplemente confirmar que está presente en mi sistema. ¿Qué me estoy perdiendo?


Mi problema era doble:

1) confunde la sintaxis del comando gem con la utilizada en las líneas config.gem en un archivo de configuración de rails environment.rb.

2) no emitir un comando require después del comando gem.

El uso correcto en un script es:

gem ''ruby-oci8'', ''=1.0.7'' require ''oci8'' # example is confusing; file required (oci8.rb) is not # same name as gem, as is frequently the case

El uso adecuado en un archivo rails 2.3.x environment.rb es:

config.gem "ruby-oci8", :version=>''1.0.7''

Gracias a la gente en http://www.ruby-forum.com/topic/109100


Pruebe la siguiente sintaxis (en lugar de requerir):

require_gem ''RMagick'' , ''=1.10'' require_gem ''RMagick'' , ''>=1.10'' require_gem ''rake'', ''>=0.7.0'', ''<0.9.0''