我正在与Sinatra一起构建Lovers的新版本。您可以查看Lovers source code on GitHub。
我可以通过CLI从存储库的根目录运行cucumber
,以黄瓜模式成功运行我的应用程序。但...
1)如何在开发模式下运行应用程序?
这有点棘手,因为它是一个模块化的应用程序,我已将app.rb
文件移到lib/lovers/application.rb
。
2)如何使用shotgun
运行它,以便在每次HTTP请求时自动重启应用程序?
3)当您为Sinatra应用程序运行ruby app.rb
时,它实际上做了什么?
如果你很好地回答第3部分,我想我能够找到答案1& 2。
谢谢!
答案 0 :(得分:5)
1)只需从项目根目录运行bundle exec shotgun
即可。与其他机架式服务器(如瘦机)相比,Shotgun是专门设计的......实际上......仅针对“开发”模式而设计......因为它会在代码发生变化时重新加载代码。
2)为什么每次请求? Shotgun会根据需要自动重新加载。
3)ruby app.rb
运行一个小型应用服务器(如下所示:http://www.sinatrarb.com/),但可能不是你想要的。霰弹枪应该可以做到。
这里要看的重要一点是在loversapp的根目录中config.ru
。这就是猎枪和其他机架服务器正在寻找的东西。它会加载您的lib/lovers/application.rb
,设置正确的RACK_ENV
,并调用run Lovers::Application
。