У меня есть приложение 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'
Wrapper.initialize нуждается в аргументе, и, очевидно, он не проходит, так как в рассматриваемой строке 94 написано
@__instance__ = new # look Ma, no argument
Как мне обойти это? Переопределение инициализации в AppWrapper, похоже, не помогает, и
перебор с Wrapper для отделения "set URL" от "initialize" кажется неоптимальным.