¿Por qué cargar Bundler.require el camino equivocado?
Pregunta
Estoy teniendo un problema con Bündler y Sinatra. En primer lugar he usado esto en mi app.rb:
require 'rubygems'
require 'bundler/setup'
require 'sinatra'
require 'haml'
require 'redis'
...
Sin embargo, he leído sobre Bundler.require
y pensó que era una buena forma seca debido a las gemas que se especifican en Gemfile son los que requerirá en mi aplicación de todos modos. ¿Por qué debo especificar el requiere de nuevo en app.rb
? Así que cambié mi código para:
require 'rubygems'
require 'bundler'
Bundler.require(:default)
Mucho más bonito eh? No hasta que sobreviene problema:
Errno::ENOENT at /
No such file or directory - /home/lamnk/.rvm/gems/ruby-1.9.2-head/gems/bundler-1.0.7/lib/bundler/views/index.haml
file: tilt.rb location: read line: 119
Es evidente que bundler ha movido la ruta raíz de la aplicación de su propio. Pero ¿por qué es eso?
Solución
vieja respuesta:
Tome un vistazo a "mediante el rubygems bundler para su aplicación " en el blog Engine Yard.
Nueva respuesta:
Como Lamnk señaló, ese puesto en Engine Yard es viejo; así que hice una sencilla aplicación https://github.com/sinetris/sinatra-example-bundler