スティックを使用してコードを開発/デバッグ/突くためだけにこれを行う場合は、モンキーパッチを適用して、プールをグローバル変数にすることができます。
require 'rubygems'
require 'sinatra'
require 'yaml'
class Rack::Session::Pool
def initialize app,options={}
super
$pool=@pool=Hash.new
@mutex=Mutex.new
end
end
use Rack::Session::Pool
get '/' do
y $pool
''
end
または、それを行うラッパーfnを作成することもできます。
require 'rubygems'
require 'sinatra'
require 'yaml'
module PoolWrapper
def self.new *args
middleware = Rack::Session::Pool.new *args
$pool=middleware.pool
middleware
end
end
use PoolWrapper
# same as above
#...
use
デバッグの場合、呼び出しを変更する必要がなく、環境をチェックするものでモンキーパッチをラップして、開発中などにのみ使用できるため、モンキーパッチの方がおそらくクリーンです。