Вам нужно взглянуть на стойку: 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
Затем вы указываете файл .ru в вашей конфигурации sinatra, например:
rackup: my_app.ru