机架选项,如何访问传递给机架的选项如下:$ rackup --option arg1 = true

时间:2015-09-04 11:41:42

标签: ruby rack cascade

我搜索过任何Rack文档的详细信息,详细说明了如何访问文档所说的可以传递到机架应用程序中的选项:

$ rackup --server thin --env development --option arg1=true

在我的config.ru中,我正在使用Rack :: Cascade:

Rack::Cascade.new [myapp1, myapp2]

我需要在命令行上访问通过rackup传递给Rack的选项,并将其提供给在Rack :: Cascade中运行的Ruby应用程序。

2 个答案:

答案 0 :(得分:0)

可以通过[your_rack_server_instance].options访问机架选项。

例如,如果您按如下所示初始化机架服务器:

rack = Rack::Server.new # or Rack::Server.new(options)
rack.options
#=> {:environment=>"development", :Port=>9292, :Host=>"localhost", :config=>"/Users/abc/workspace/xyz/config.ru"}

有关详细信息,您可以查看其实现:

Rack::Server

Rack::Builder

答案 1 :(得分:0)

仍未找到通过机架服务器实例选项执行此操作的方法。至少不是来自通过机架级联运行的模块内。

我最终实现同样的目的是设置一个env变量:

env deployment=true rackup --server thin --host 0.0.0.0 --port 4567 --quiet

这样,部署选项当然可以从机架级联中运行的任何模块访问,如下所示:

ENV['deployment']