Inicie y llame al servidor HTTP Ruby en el mismo script
Me pregunto cómo podría iniciar una aplicación Ruby Rack (como Sinatra) y llamarla con Net :: HTTP o similar en el mismo script. Por supuesto que podría hacer algo como ...
require 'sinatra/base'
require 'net/http'
t = Thread.new do
class App < Sinatra::Base
get '/' do
'Hi!'
end
end
App.run! :host => 'localhost', :port => 1234
end
sleep 2
puts Net::HTTP.start('localhost', 1234) { |http| http.get('/') }.body
t.join
puts 'Bye!'
... pero no se siente óptimo para dormir durante dos segundos, esperando que Thin comience. ¿Lo que necesito es algún tipo de devolución de llamada cuando el servidor se ha iniciado o alguien tiene alguna otra sugerencia?