1

パドリーノにモンキーパッチを当てたくない。

それでも、コマンドラインからコマンドpadrinostart-dを使用できるようにしたいです。

padrino内でSSLを稼働させたい。シナトラ内で私はただします:

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

これらのオプションの設定を処理するファイルをPadrinoコアの奥深くで見つけましたが、アプリケーションにモンキーパッチを適用したくありません。

理想的には、Padrino::Applicationサブクラス内でオプションを設定できる方法があることを望んでいます。

これまでのところ、これを行う方法、またはこれが可能かどうかについてのドキュメントは見つかりませんでした。

4

2 に答える 2

1

うーん、あなたは同じことをすることができるはずです。

プロジェクトフォルダにconfig.ruが表示されます。

次のコマンドで最後の行を削除して編集してみてください。

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

次に、コマンドラインから:

$ rackup
于 2012-09-07T21:41:17.547 に答える
0

私はこれが古いことを知っていますが、誰かがこれをきれいにしようとしている場合に備えて、これが私が使用するものです:

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

仕様のためにカスタムロガーをアプリケーションに挿入するために、2番目の例を頻繁に使用します。

例えば:

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_settingsApplication::self.run!

于 2014-09-17T15:56:34.223 に答える