は、私は2つのモジュールがあるとします。今Rubyの動的モジュールミックスイン
module Test1
attr_accessor :a, :b
@a = 0.0
@b = 0.0
end
module Test2
attr_accessor :c, :d
@c = 0.0
@d = 0.0
end
を、私は条件付きでクラスにこれらのモジュールをミックスしたいです。これは私が試したものです:
obj = MyClass.new(0)
obj.a #=> nil
また@a
は、クラス内のインスタンスメソッドでnil
です:
require './Test1.rb'
require './Test2.rb'
class MyClass
def initialize(mode)
if mode == 0
(class << self; include Test1; end)
elsif mode == 1
(class << self; include Test2; end)
else
class << self
include Test1
include Test2
end
end
end
end
これは私が見てい動作です。私はここで重要な何かを理解していないと感じています。なぜ私がやっていることが機能していないのか、私の望む機能を達成する正しい方法は何かを理解したいと思います。
これはまさに私が探していたものです。ありがとう! –