2012-01-15 87 views
2

我正在嘗試爲我正在構建的創業板構建Server類。這可以定義call (env)這將使其成爲機架應用程序。但是,我想根據我的需要使用Rack::Builder並映射不同種類的URL。定義從Rack :: Builder繼承的類

我不知道如何解釋,但有沒有辦法從Rack :: Builder繼承?我想將URL映射分離到它自己的方法中,以便我可以在一個類中對它們進行測試,以便給它賦予意義和隔離。

謝謝。

回答

3

您不需要繼承Rack :: Builder。你可以這樣做。

config.ru

class WrapperClass 
    def call(env) 

    #your_url_mapping_logic env 

    YourApp.new.call(env) 
    end 
end 

run WrapperClass.new 

class WrapperClass 
    def call(env) 
    #your_url_mapping_logic env 

    #your app logic 
    # .... 

    [status, header, body] 
    end 
end 

run WrapperClass.new 
+0

這是一個很好的點。儘管我打算使用'Rack :: Builder'作爲映射,但實際上這聽起來不錯。我想''路由器類或什麼應該做的伎倆,更容易測試。謝謝,阿列克謝。 – josemota 2012-01-16 20:42:44