如何将rackup调用转换为自包含脚本?

时间:2015-06-07 09:12:14

标签: ruby rack

我试图通过以下方式制作宝石:

 spawn("rackup", "--port", PORT.to_s, "--server", "thin", "-E", "development", File.expand_path("../server.ru", __FILE__))

如果我在gem中使用它,我会LoadError获取thin(打包并安装后)(thin在我的gemspec中,但我想错误必须要做生成Rackup可执行文件,这不是gem的一部分。)

更换:

run app

Rack::Handler::Thin.run app
server.ru文件中的

将启动服务器,但我也需要设置参数。

我试探性地尝试过:

ENV['RACK_ENV']='development'
Rack::Handler::Thin.run app, host: 'localhost', port: PORT.to_s

无济于事。使用显式处理程序将参数化rackup调用转换为可执行*.ru文件的方法是什么?

1 个答案:

答案 0 :(得分:0)

Rack::Handler::Thin有一个valid_options方法。 这些键都不起作用,也没有各种组合。 SERVER_PORTSERVER_HOST env变量也无效。

我倾向于使用thin文件作为参数运行*.ru可执行文件,并执行

我尝试过的事情很可能会与Thin之外的其他处理程序一起工作(即瘦身可能是一个蹩脚的机架公民)。我不知道或不在乎。只需要让这个工作。当然,我会欣赏(upvote / accept)答案,以便更多地了解这个