Estoy intentando actualizar uno de mis proyectos de Rails al Ruby 1.9.2
. Todo fue bastante bien, pero se rompió una prueba de RSpec. En esta prueba me require
un rubí lib
:requiere lib en RSpec con Ruby 1.9.2 trae "no se carga ese archivo"
# file spec/models/my_lib_spec.rb
require 'spec_helper'
require 'lib/services/my_lib'
describe "MyLib" do
it "should do something" do
...
Las miradas lib como este:
# file lib/services/my_lib.rb
class MyLib
def self.do_something
...
en Ruby 1.8.7 (REE) la prueba funcionó bien:
$ ruby -v
ruby 1.8.7 (2011-02-18 patchlevel 334) [i686-darwin11.1.0], MBARI 0x6770, Ruby
Enterprise Edition 2011.03
$ rspec ./spec/models/my_lib_spec.rb
..
Finished in 1.4 seconds
2 examples, 0 failures
En Ruby 1.9.2 obtengo un error no such file to load
:
$ ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin11.1.0]
$ rspec ./spec/models/my_lib_spec.rb
/Users/tmangner/.rvm/gems/[email protected]/gems/activesupport-
3.2.2/lib/active_support/dependencies.rb:251:in `require': no such file
to load -- lib/services/my_lib (LoadError)
No tengo ni idea, lo que impide que Ruby 1.9 encuentre la lib.
¡La última parte de tu respuesta fue la clave! "require 'service/my_lib'" funciona en Ruby1.9 _and_ Ruby1.8. Obviamente, RSpec incluye 'lib' en $ LOAD_PATH. – DiegoFrings
¡genial! rspec '- I .' es la clave para mí al actualizar ruby de 1.8 a 1.9. muchas gracias @Frost! –
Si no desea especificar '-I .' cada vez que ejecuta' rspec' puede agregarlo a su archivo .rspec y se agregará de manera predeterminada. – bloudermilk