我想知道如何将Bundler与Sinatra一起使用。我们的想法是使用Bundler在.gems文件夹中下载的gem。
发布于 2009-11-13 12:35:08
我相信最好的方式是在EngineYard博客上描述here:
# 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
发布于 2009-11-11 10:42:36
在Sinatra应用程序中,您只需要设置bundler:
require "bundler/setup"
require "sinatra"
get "/" do
"Hello world!"
end
或者,如果您不想在应用程序顶部添加额外的require "bundler/setup"
,则可以通过bundle exec
(例如bundle exec ruby myapp.rb
)调用sinatra。
这里假设您的应用程序根目录中有一个Gemfile
。它可能看起来像这样:
source "http://rubygems.org"
gem "sinatra"
这还假设您已经安装了bundler (gem install bundler
),并且运行了bundle install
来安装所有的gem依赖项。
发布于 2010-07-23 01:16:40
由于我最初的答案已经很旧了,但似乎仍然有人关注这个话题,这里是bundler/sinatra设置的最新版本,它将涵盖大部分用例:
最小config.ru
require './my_sinatra_app'
run MySinatraApp
需要所有捆绑的gem的环境env.rb
文件(还支持加载当前环境的组):
require 'bundler/setup'
APP_ENV = ENV["RACK_ENV"] || "development"
Bundler.require :default, APP_ENV.to_sym
然后您的应用程序文件(需要环境)与您的sinatra应用程序(Sinatra::Base
):
require_relative 'env'
class MyApp < Sinatra::Base
get "/" do
"hello world"
end
end
使用rackup启动您的开发服务器,Sinatra将通过Bundler加载,您的应用程序将可以从http://localhost:9292访问。
$ rackup
如果需要,也可以使用bundle exec rackup
确保您有如下所示的Gemfile,并在启动应用程序之前运行bundle
命令
source "https://rubygems.org"
gem "sinatra"
gem "puma" # a better rack server than the default webrick
https://stackoverflow.com/questions/1706120
复制相似问题