0

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'))
4

1 に答える 1