2012-01-15 3 views
2

私が構築している宝石のためにServerクラスを構築しようとしています。これはcall (env)と定義され、ラックアプリになります。しかし、私はRack::Builderを使い、必要に応じてさまざまな種類のURLをマップしたいと思います。Rack :: Builderから継承するクラスを定義します。

私はこれを説明する方法がわかりませんが、にはRack :: Builderなどを継承する方法がありますか? URLマッピングを独自のメソッドに分離したいので、意味と分離を与えるために、1つのクラスでそれらをテストできます。

ありがとうございます。

答えて

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'を使うことを意図していましたが、実際はOKです。私は 'ルータ'クラスか何かがトリックをやって、テストするのが簡単だと思います。ありがとう、アレクセイ。 – josemota