클래스 이름을 알지 못하고 새 클래스를 만들려고합니다. 생성 될 때까지 클래스 이름을 알지 못합니다.동적으로 클래스 만들기
이와 비슷한 것; 가능하면
variable = "ValidClassName"
class variable
end
Test = ValidClassName.new
, 내가 동적으로 새로운 클래스 특성 (및 방법)을 추가하는 방법에 대한 솜 힌트를 주시면 감사하겠습니다.
나는 클래스 '설정'을 불러 오는됩니다, 그들은 같은 것을 볼 것이다 :
title :Person
attribute :name, String
attribute :age, Fixnum
을하지만 해당 명시 적으로 파일을 수용하도록 설계되지 않아야은, 속성은 숫자 결국 다를 수 있습니다 유형.
class Person
def initialize(name, age)
@name_out = name
@age_out = age
end
end
도움말 :
결국 어떤 식으로 뭔가를 보여야하는 클래스를 생성합니다?variable = "SomeClassName"
klass = Class.new(ParentClass)
# ...maybe evaluate some code in the context of the new, anonymous class
klass.class_eval { }
# ...or define some methods
klass.send(:title, :Person)
klass.send(:attribute, :name, String)
# Finally, name that class!
ParentClass.send(:const_set, variable, klass)
를 ... 아니면 그냥 평가 후면 사용할 수 있습니다 :
클래스의 소스 코드를 만들고 싶습니까? 또는 소스를 생성하고 런타임에 클래스를 컴파일 /로드하라는 루비에게 알려주고 싶습니까? – ardnew
호기심에서 벗어나서 어떤 문제를 해결하고 있습니까? 이 동적으로 생성 된 클래스를 어떻게 사용할 계획입니까? – ctcherry
내 수업은 yaml 파일에서 objetcs (클래스에 의해 설정된 요구 사항을 충족하는 한)를 인스턴스화하기 위해 사용 된 후에 '프레임'으로 작동해야합니다. YAML은 많은 "사람"을 보유하고 있으며 일부는 요구 사항과 일치하는 속성을 가지고 있습니다. – BSG