YAML

2009-12-01 54 views
6

ile seri hale getirilmiş bir nesneyi yüklerken başlatılıyor çağrılıyor YAML.load_file kullanılırken Ruby'nin bir başlatma yöntemini çağırmasını zorlamak mümkün mü? Serileştirmediğim örnek değişkenler için değerler sağlamak amacıyla yöntemi çağırmak istiyorum. Kodun ayrı bir yönteme dahil olduğunu ve YAML.load_file çağrıldıktan sonra bu yöntemi çağırdığımı biliyorum, ancak bu sorunu çözmenin daha zarif bir yolu olup olmadığını merak ediyordum.YAML

+0

hakkında biraz daha açıklayabilir misiniz: Örneğin, Foo sen serisini istediğiniz sınıf, aşağıdaki gibi bir sınıf yöntemi ekleyebilirsiniz olalım? İlk eğilimim, aramayı load_file dosyasına saran ve sonra yapılandırma dosyasında bulunmayan değerleri sağlayan bir sınıf oluşturmaktır. Daha eksiksiz bir çözüm sunabilmek isterim. –

cevap

3

Yapabileceğinizi sanmıyorum. Ekleyeceğiniz kod, seri hale getirilen sınıfa özgü olduğundan, özelliği sınıfa eklemeyi düşünmelisiniz. Yapmaya çalıştığınız şeyi

class Foo 
    def self.from_yaml(yaml) 
    foo = YAML::load(yaml) 
    # edit the foo object here 
    foo 
    end 
end 

myFoo = Foo.from_yaml("myFoo.yaml")