[Ruby] Creating class by name

Mikhail Yakshin greycat на altlinux.ru
Вс Мар 28 15:23:52 MSD 2004


Приветствую!

Как создать класс по имени? То есть существует некая строка, допустим:

class Klass
   ... something ...
end

s = 'Klass'

Хочется вызвать конструктор класса Klass, передав ему еще какие-то 
параметры. Пока я вижу только очень кривое решение в виде:

k = eval("#{s}.new(param1, param2, ...)")

которое мне усиленно не нравится. Есть более культурные методы? Возможно 
даже через изменения интерпретатора, какие-то бинарные либы для 
расширенного reflection/objectspace и т.п.

WBR, Mikhail Yakshin AKA GreyCat.


Подробная информация о списке рассылки Ruby