2012-01-15 95 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