Как установить параметр параметров WEBRick в методе запуска с помощью Padrino?

Я не хочу мазать Падрино обезьяной.

Я все еще хочу иметь возможность использовать команду padrino start -d из командной строки.

Я хочу запустить SSL в padrino. В Sinatra я просто делаю:

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

Я нашел файл глубоко внутри ядра Padrino, который управляет установкой этих параметров, но я действительно не хочу, чтобы обезьяна исправляла приложение.

В идеале я хотел бы, чтобы каким-то образом я мог установить параметры в моем подклассе Padrino::Application.

До сих пор я не нашел никакой документации о том, как это сделать, или если это вообще возможно.


person Jesse Earle    schedule 07.09.2012    source источник


Ответы (2)


ммм, вы должны быть в состоянии сделать то же самое.

В папке вашего проекта вы должны увидеть config.ru

Попробуйте отредактировать его, удалив последнюю строку с помощью:

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

Затем из командной строки:

$ rackup
person DAddYE    schedule 07.09.2012

Я знаю, что это старо, но на случай, если кто-то попытается сделать это чисто, вот что я использую:

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!

См. эту ссылку на источник для получения дополнительной информации о server_settings использование в Application::self.run!.

person Adam Eberlin    schedule 17.09.2014