繁体   English   中英

如何在Padrino的run方法中设置WEBRick选项参数

[英]How do you set the WEBRick options parameter in the run method with Padrino

我不想胡闹帕德里诺。

我仍然希望能够从命令行使用命令padrino start -d。

我想在padrino中启动并运行SSL。 在Sinatra中,我只是做:

Rack::Handler::WEBrick.run MyServer, MyServerOptionsWithAppropriateSSLStuffEtc

我发现该文件位于Padrino内核的深处,可以处理这些选项的设置,但我确实不想猴子修补该应用程序。

理想情况下,我希望可以通过某种方式在Padrino :: Application子类中设置选项。

到目前为止,我还没有找到任何有关如何执行此操作的文档,或者甚至没有找到任何文档。

嗯,你应该能够做到这一点。

在您的项目文件夹中,您应该看到config.ru

尝试编辑它以删除最后一行:

Rack::Handler::WEBrick.run Padrino.application, MyServerOptionsWithAppropriateSSLStuff

然后从命令行:

$ rackup

我知道这已经很老了,但是如果有人要干净地做这件事,这就是我的用法:

class MyApplication < ::Sinatra::Base
  # ...

  def self.server_settings
    { key: value, ... }
  end

  # ...
end

您还可以在运行时之前注入设置:

MyApplication.class_exec(server_settings) do |server_params|
  def self.server_settings
    server_params
  end
end

我经常使用第二个示例将自定义记录器注入到我的规范应用程序中。

例如:

module CustomLogger
  def logger
    settings.try(:server_settings)[:Logger] || request.logger
  end
end

MyApplication.class_exec(CustomLogger) do |logger_module|
  helpers logger_module
  def self.server_settings
    # global specified in guard/spec helper
    { Logger: $LOGGER }
  end
end

class MyApplication < ::Sinatra::Base
  enable :logging

  get '/' do
    logger.info "FOO"
  end
end

MyApplication.run!

请参阅此源链接 ,以获取有关Application::self.run! server_settings用法的更多信息Application::self.run!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM