Rubyでシングルトンクラスに基づいて新しい非シングルトンクラスを定義することは可能ですか?
私はこのようなことを試しました(中略):
module SomeModule
extend self
class Singleton;end
end
class NonSingleton
include SomeModule
end
nonsingleton = NonSingleton.new
しかし、もちろん、あなたの達人には、これが私の期待どおりに機能しないことはすでに明らかです。
基本的に、Singleton クラスの動作に影響を与えることなく、その機能を再利用したいのです。出来ますか?
さらに調査した結果、これはまったく不可能であるように思われます (間違っている場合は訂正してください)。次のようなハックはあまりにも醜い/乱雑でしょうか?
singleton = File.read('some_singleton.rb')
non_singleton = eval(singleton.gsub('include Singleton', ''))
# Or perhaps:
non_singleton = eval(singleton.gsub('module SomeModule', 'module MyOwnModule'))