2012-09-07 47 views
1

我不想猴子修補Padrino。如何在Padrino中設置WEBRick選項參數的運行方法

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

我想在padrino中啓動並運行SSL。在西納特拉我只是做:

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

我發現深Padrino核心來處理設置這些選項裏面的文件,但我真的不希望猴子修補程序。

理想情況下,我希望有一些方法可以在我的Padrino :: Application子類中設置選項。

到目前爲止,我還沒有找到任何有關如何做到這一點的文檔,或者甚至可能。

回答

1

mmm,你應該可以做同樣的事情。

在項目文件夾,你應該看到config.ru

嘗試編輯它刪除最後一行有:

Rack::Handler::WEBrick.run Padrino.application, MyServerOptionsWithAppropriateSSLStuff 
從命令行

然後:

$ rackup 
+0

嘿,做到了。謝謝。 –

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 

我經常使用的第二個例子注射自定義記錄到我的規格的應用程序。

例如:

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用法見this source link

相關問題