Ich verwende Module als Namespaces und möchte sie dynamisch mit Klassen befüllen, z. B.:
module Module1
# ...
end
module Module2
# ...
end
[Module1, Module2].each do |the_module|
the_module.module_eval do
class ApiTest < ActiveSupport::TestCase
# ...
end
end
end
module_eval
würde funktionieren, außer dass es pas die Verschachtelung ändern und die äußere beibehalten. Infolgedessen werden die enthaltenen Konstanten nicht in den Modulen verschachtelt.
Die ursprüngliche Motivation besteht darin, die dieselbe Tests für verschiedene API-Implementierungen, die jeweils in einem eigenen Modul enthalten sind.