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
принимает параметр, который будет суперкласса.
документы: класса.новый.