Próbuję utworzyć nową klasę, nie znając nazwy klasy, dopóki nie zostanie utworzona.Tworzenie klasy dynamicznie
Coś takiego;
variable = "ValidClassName"
class variable
end
Test = ValidClassName.new
Jeśli to możliwe, chciałbym docenić kilka wskazówek, jak dynamicznie dodawać atrybuty (i metody) do tej nowej klasy.
będę retreiving „Ustawienia” dla klasy i będą wyglądać następująco:
title :Person
attribute :name, String
attribute :age, Fixnum
Ale nie powinno być tak zaprojektowane, aby zaakceptować tylko to wyraźny pliku, atrybuty mogą się różnić w końcu numer rodzaj.
co w końcu będzie generować klasy, który powinien wyglądać tak:
class Person
def initialize(name, age)
@name_out = name
@age_out = age
end
end
Pomoc?
chcesz tylko utworzyć kod źródłowy dla klasy? lub chcesz wygenerować źródło i powiedzieć ruby, aby skompilował/załadował klasę w czasie wykonywania? – ardnew
Z ciekawości, z jakim problemem rozwiązujesz? W jaki sposób planujesz używać tych dynamicznie tworzonych klas? – ctcherry
Moja klasa ma działać jako "ramka", niegdyś stworzona do niewłaściwego użycia w tworzeniu instancji (tak długo, jak spełniają wymagania określone przez klasę) z pliku yaml. YAML zawiera grupę "ludzi", a niektóre z nich mają atrybuty pasujące do wymagań. – BSG