2017-01-13 7 views
0

いくつかのメソッドのバージョンが少しずつ異なる2つのバージョンのアプリケーションがあります。Sinatraヘルパーを一部のルート(モジュラーアプリケーション)でのみご利用いただけます。

module Sinatra 
    class MyApp < Sinatra::Base 
    helpers Sinatra::Version1 
    helpers Sinatra::Version2 
    end 
end 

module Sinatra 
    module Version1 
    def say_hello 
     puts "Hello from Version1" 
    end 
    end 
    helpers Version1 
end 

module Sinatra 
    module Version2 
    def say_hello 
     puts "Hello from Version2" 
    end 
    end 
    helpers Version2 
end 

このように指定されたヘルパーはすべて「トップレベル」であり、すべてのルートで使用できるようになっています。

異なるルートで利用できるメソッドのバージョンを変更したいと思います。モジュラーアプリケーション内でこれを実現する方法はありますか?

答えて

1

必要に応じてヘルパーを「含む」2つの異なるモジュラークラスにアプリケーションを分割することも可能です。たとえば:

# config.ru 

require './app.rb' 

map('/one') do 
    run MyApp1 
end 

map('/two') do 
    run MyApp2 
end 


# app.rb 
# helper modules same as you've mentioned above. 

class MyApp1 < Sinatra::Base 
    helpers Sinatra::Version1 

    get '/' do 
    say_hello 
    end 
end 

class MyApp2 < Sinatra::Base 
    helpers Sinatra::Version2 

    get '/' do 
    say_hello 
    end 
end 

これが最善の方法であるかどうかは、まだ熟考する必要があるかどうかです。

+0

これはまさに私がやったことです。 – sarkon

関連する問題