【发布时间】:2009-06-12 16:24:15
【问题描述】:
我需要编写一个超快速的 Ruby 应用程序来处理 Sinatra 上的 Web 请求 - 并希望在 Ebb webserver 上运行它。但我无法弄清楚如何做到这一点。有人可以帮帮我吗?
【问题讨论】:
-
不要使用 Ebb,它没有维护。补丁被忽略,实现被破坏。
我需要编写一个超快速的 Ruby 应用程序来处理 Sinatra 上的 Web 请求 - 并希望在 Ebb webserver 上运行它。但我无法弄清楚如何做到这一点。有人可以帮帮我吗?
【问题讨论】:
sinatra 有一个 -s 选项来指定处理程序。尝试使用 -s ebb 运行您的应用。
【讨论】:
您需要查看机架:http://rack.rubyforge.org/ 这真的很简单,你有一个 .ru 文件,它指示 Rack 如何启动你的应用程序,在你的应用程序中,你有一个在每个请求上调用的 'call' 方法,并将响应发送回 Rack。
在 my_app.ru 中
require 'my_app'
require 'ebb'
# Rack config
use Rack::Static, urls: ['/js', '/public', '/index.html']
use Rack::ShowExceptions
# Run application
run MyApp.new
在 my_app.rb 中
class MyApp
def call env
request = Rack::Request.new env
response = Rack::Response.new
params = request.params
response.body = "Hello World"
response['Content-Length'] = response.body.size.to_s
response.finish
end
end
然后在 sinatra 配置中指定 .ru 文件,例如:
rackup: my_app.ru
【讨论】: