Ruby: как динамически создать подкласс существующего класса?

Я пишу код Ruby, который создает новые классы с помощью Object.const_set, который отлично подходит для создания новых классов и создания их экземпляров. Но я бы хотел, чтобы эти новые классы унаследовали от класса, который я уже жестко закодировал. Я не могу найти методы для этого. Вот мой код:

def create_model_class(klass_name, klass_vars)
    klass = Object.const_set(klass_name, Class.new)
    klass.class_eval do
        define_method(:initialize)
            klass_vars.each_with_index do |name, i|
                instance_variable_set("@"+name[i], name[i])
            end
        end
    end
end

1 ответов


Class.new принимает параметр, который будет суперкласса.

документы: класса.новый.