/ / Un fusil à pompe explose lors du lancement d’une application Sinatra sous Windows: fenêtres, rubis, sinatra, fusil de chasse

Une gemme de fusil explose lors du démarrage d'une application Sinatra sur des fenêtres - windows, ruby, sinatra, shotgun

Application Sinatra:

require "rubygems"
require "sinatra"

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

Windows XP avec la dernière version de bâtard, sinatra, fusil de chasse. rubis 1.8.6

l'exécution de shotgun test_app.rb entraîne


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

Une idée sur la façon de résoudre ce problème? Je vous remercie!

Réponses:

1 pour la réponse № 1

Le mieux que je puisse faire est de vous indiquer un autre fil à ce sujet. Shotgun nécessite une fourche disponible uniquement sur les systèmes * nix. Il y a même un peu de savoir comment le faire en natif si vous avez envie de soumettre un patch.


1 pour la réponse № 2

Un moyen facile à utiliser est d'utiliser sinatra / rechargeur. Installez le sinatra / contrib Gem et ajoutez l'extension à votre fichier principal:

require "sinatra/reloader"

Fonctionne bien sous Windows 8.1.


0 pour la réponse № 3

Vous pouvez essayer le redémarrer gem - il était destiné à être utilisé sous Windows, il n'utilisait donc pas fork(). Dans votre exemple, vous remplacez simplement fusil à pompe avec redémarrer ruby, comme ça:

restart ruby test_app.rb

Voir ici pour plus d'informations - espérons que cela fonctionne pour vous :)