Me pregunto cómo se puede usar Bundler con Sinatra. La idea es usar las gemas que Bundler descarga dentro de la carpeta .gems.Sinatra + Bundler?
Respuesta
Creo que la mejor forma en que se describe here en EngineYard blog:
# This makes sure the bundled gems are in our $LOAD_PATH
require File.expand_path(File.join(File.dirname(__FILE__), 'vendor', 'gems', 'environment'))
# This actually requires the bundled gems
Bundler.require_env
class MyApp < Sinatra::Base
# stuff
end
dentro de su aplicación Sinatra, sólo hay que exigir la instalación bundler:
require "bundler/setup"
require "sinatra"
get "/" do
"Hello world!"
end
Como alternativa, si no desea agregar el adicional require "bundler/setup"
en la parte superior de su aplicación, en su lugar puede invocar Sinatra a través de bundle exec
(por ejemplo bundle exec ruby myapp.rb
)
Esto supone que tiene un Gemfile
en la raíz de su aplicación. Se podría tener este aspecto:
source "http://rubygems.org"
gem "sinatra"
Esto también supone que ya ha instalado bundler (gem install bundler
) y que se ejecutó bundle install
para instalar todas las dependencias de la gema.
Como mi respuesta original era bastante viejo, pero parece que hay todavía la atención sobre este tema aquí es la versión más reciente de bundler/configuración Sinatra cuales cubrirá la mayor parte del caso de uso:
Un mínimo config.ru
require './my_sinatra_app'
run MySinatraApp
Un entorno env.rb
archivo que requiere que todas las gemas en paquete (también es compatible con la carga de grupo del entorno actual):
require 'bundler/setup'
APP_ENV = ENV["RACK_ENV"] || "development"
Bundler.require :default, APP_ENV.to_sym
A continuación, el archivo de aplicación (que requiere el medio ambiente) con su aplicación Sinatra (Sinatra::Base
):
require_relative 'env'
class MyApp < Sinatra::Base
get "/" do
"hello world"
end
end
de inicio su servidor de desarrollo con rackup, y Sinatra se cargará a través de Bundler, su aplicación será accesible desde http://localhost:9292.
$ rackup
o bundle exec rackup
si es necesario
Asegúrate de que tienes un Gemfile como la siguiente y ejecutar el comando bundle
antes de iniciar la aplicación
source "https://rubygems.org"
gem "sinatra"
gem "puma" # a better rack server than the default webrick
+1 para el guide on the bundler website, pero si usted tiene una aplicación simple y usa la dsl de Sinatra en el nivel superior, entonces necesita hacer lo siguiente:
en y nuestra Gemfile (decirle bundler no requiere Sinatra):
gem 'sinatra', :require => false
y en el archivo de la aplicación (exigir explícitamente Sinatra):
require 'rubygems'
require 'bundler'
Bundler.require
require 'sinatra'
get '/' do
'hello world'
end
- 1. Instalar una gema de Github con Bundler
- 2. Evitar las declaraciones de dependencia de Bundler redundantes para Rack
- 3. Bundler no pudo encontrar versiones compatibles para "bundler" de gemas:
- 4. Bundler - carga múltiples Gemfiles
- 5. gemas rieles Bundler instalan
- 6. RVM/degradación bundler joya
- 7. Crontab + rails3 + bundler
- 8. Cómo iniciar una aplicación Sinatra usando "correr"
- 9. Rubygems, Bundler y confusión RVM
- 10. Rails 3 vs Sinatra
- 11. Python equivalente de Sinatra
- 12. Sinatra y HTTP PUT
- 13. Sinatra Url '/' interpretaciones
- 14. Sinatra Mira variable
- 15. Buscando sinatra ajax ejemplo
- 16. Sinatra Sub-Directory Views
- 17. ¿Para qué usa Sinatra?
- 18. Sinatra - API - Autenticación
- 19. ¿Iniciar sesión en Sinatra?
- 20. Sinatra vs. Rails
- 21. Sinatra server push?
- 22. ¿Sinatra tiene múltiples hilos?
- 23. Idear con Sinatra
- 24. Rails 3/Bundler joya: 'método indefinido `setup' para Bundler: Módulo (NoMethodError)'
- 25. desplegar una aplicación sencilla prueba con Sinatra + + DataMapper Postgres + Heroku devuelve: Instalación do_sqlite3 (0.10.7) de error
- 26. Cómo perfilar RSpec con perftools y bundler?
- 27. Instalación de gemas con Bundler == Problema grande
- 28. Plataforma gemas específicas para autotest con bundler
- 29. ¿Cómo evitar que bundler genere binstubs?
- 30. Rails 3 - Errores de Bundler/Capistrano
Yehuda Katz tiene un gran artículo sobre el uso de bundler hoy: http: // yehudakatz .com/2009/11/03/using-the-new-gem-bundler-today/ –
Además, la documentación del bundler en sí tiene un buen ejemplo de cómo configurar una aplicación de sinatra http://gembundler.com/sinatra.html y es actual – christophercotton