2009-02-27 8 views
0

J'ai sauvé un objet de la classe Foo en utilisant foo.to_yaml. Maintenant, j'ai ajouté une variable d'instance à la classe Foo avec la valeur par défaut définie à 0 dans la méthode initializer. maintenant quand j'essaye de charger l'objet du fichier yaml la variable d'instance est mise à zéro.Comment spécifier les valeurs par défaut lors du chargement de fichiers en utilisant yaml?

Y a-t-il un moyen de le mettre à 0 si le fichier yaml ne contient aucune valeur pour cette variable d'instance?

Existe-t-il une méthode de rappel appelée sur l'objet après son chargement à partir du disque?

Répondre

1

Vous pouvez créer la méthode de lecture pour cette variable comme

def your_instance_variable 
    return "default" unless @your_instance_variable 
    @your_instance_variable 
end 

post-scriptum Je faisais une tâche avec la sérialisation d'objet il y a quelque temps et AFAIK Marshal.dump/load était beaucoup plus rapide

Questions connexes