如何运行我的模块化Sinatra应用程序?

时间:2011-02-09 04:12:14

标签: ruby sinatra

我正在与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。

谢谢!

1 个答案:

答案 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