/ La gema / escopeta explota al iniciar una aplicación Sinatra en las ventanas: ventanas, ruby, sinatra, escopeta

Una gema de escopeta explota cuando se inicia una aplicación Sinatra en windows - windows, ruby, sinatra, shotgun

Aplicación de Sinatra:

require "rubygems"
require "sinatra"

get "/" do
"Hello world. It"s #{Time.now} at the server!"
end

Windows XP con la última versión de mongrel, sinatra, shotgun. rubi 1.8.6

resultados de shotgun test_app.rb en


C:Filessitessinatra>shotgun test.rb
== Shotgun starting Rack::Handler::Mongrel on localhost:9393
Thu Dec 03 16:51:37 -0800 2009: Read error: #<NotImplementedError: fork() functi
on is unimplemented on this machine>
c:/ruby/lib/ruby/gems/1.8/gems/shotgun-0.4/lib/shotgun.rb:26:in `fork"
c:/ruby/lib/ruby/gems/1.8/gems/shotgun-0.4/lib/shotgun.rb:26:in `call!"
c:/ruby/lib/ruby/gems/1.8/gems/shotgun-0.4/lib/shotgun.rb:15:in `call"
c:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/content_length.rb:13:in `call"
c:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/chunked.rb:15:in `call"
c:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/handler/mongrel.rb:61:in `process"
c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:159:in `process_client"
c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:158:in `each"
c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:158:in `process_client"
c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:285:in `run"
c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:285:in `initialize"
c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:285:in `new"
c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:285:in `run"
c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:268:in `initialize"
c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:268:in `new"
c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:268:in `run"
c:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/handler/mongrel.rb:34:in `run"
c:/ruby/lib/ruby/gems/1.8/gems/shotgun-0.4/bin/shotgun:129
c:/Ruby/bin/shotgun:19:in `load"
c:/Ruby/bin/shotgun:19

¿Alguna idea de cómo resolver esto? ¡Gracias!

Respuestas

1 para la respuesta № 1

Lo mejor que puedo hacer es señalarte otro hilo sobre esto. La escopeta requiere una horquilla que solo está disponible en los sistemas * nix. Incluso hay un poco de cómo hacerlo de forma nativa si tiene ganas de enviar un parche.


1 para la respuesta № 2

Una manera fácil de ir es usar sinatra / recargador. Instala el sinatra / contrib gema y añadir la extensión a su archivo principal:

require "sinatra/reloader"

Funciona bien bajo Windows 8.1.


0 para la respuesta № 3

Puedes probar el reiniciar gema - fue pensado para ser usado en Windows, por lo que no usa fork(). En tu ejemplo, simplemente reemplazarías escopeta con reiniciar ruby, Me gusta esto:

restart ruby test_app.rb

Ver aquí Para más información, espero que esto funcione para usted :)