Ruby オブジェクトをモジュールで拡張したいのですが、実行時に使用するモジュールを変更し、オブジェクトごとに変更できるようにしたいと考えています。つまり、モジュールの名前をパラメーターとして渡したいのですextend。これどうやってするの?
私は次のことを試しました:
module M1
end
module M2
end
class C
def initialize module_to_use
extend module_to_use
end
end
m = get_module_name_from_config_file
c1 = C.new m
(メソッドが目的のモジュールの名前でget_module_name_from_config_filea を返すと仮定します - ここでは または のいずれかです。)String"M1""M2"
しかし、私はこれを取得します:
error: wrong argument type String (expected Module).
m型の為String、無いModule、明らかに。mシンボルでも試してみましたが、同じ問題が発生します(エラーメッセージで置き換えStringてください)。Symbol
mそれで、タイプの何かに変換できModuleますか?または、これを達成できる別の方法はありますか?
前もって感謝します。