require 'rubygems'
ajustará el rubí loadpath
lo que le permite solicitar con éxito las gemas instaladas a través rubygems, sin conseguir un LoadError: no such file to load -- sinatra
.
De la documentación rubygems-1.3.6:
Cuando se requiere RubyGems, Kernel # requieren se sustituye con nuestra propia que es capaz de gemas de carga en la demanda.
Cuando se llama a requerir 'x', esto es lo que sucede:
Si el archivo se puede cargar desde el LOADPATH Rubí existente, es .
De lo contrario, las gemas instaladas se buscan para un archivo que coincide con . Si se encuentra en gem 'y', esa gema se activa (agregada al loadpath).
El normales requieren funcionalidad de devolver false si ese archivo ya ha sido cargado se conserva.
Consulte la documentación para Kernel#require para comprender por qué es necesario.
RubyGems seleccionará la última versión instalada de las gemas siguientes. Si no se encuentra dicho software, se genera una excepción. – lkahtz
¿Por qué es superfluo? Es la mejor manera de cargar una gema necesaria. –
En realidad, "require 'rubygems'" no carga una gema necesaria, solo modifica el comportamiento del método "require". –