ラッパーを介して別の Web サーバーと繰り返し通信する Rails アプリがあり、リクエストごとに再作成されないように、ラッパーを Singleton クラスに貼り付けたいと考えています。簡単に、私は考えました:
class AppWrapper < Wrapper
include Singleton
end
...
wrapper = AppWrapper.instance "url"
それだけでは機能しません:
wrong number of arguments (0 for 1)
/usr/lib/ruby/1.8/singleton.rb:94:in `initialize'
/usr/lib/ruby/1.8/singleton.rb:94:in `new'
/usr/lib/ruby/1.8/singleton.rb:94:in `instance'
問題の94行目は
@__instance__ = new # look Ma, no argument
これを回避するにはどうすればよいですか? AppWrapper で初期化を再定義しても解決しないようです。また、Wrapper をいじって「URL の設定」を「初期化」から分離するのは最適ではないようです。