Fondamentalement, j'ai déjà une instance d'un objet Ruby mais je veux mettre à jour toutes les variables d'instance que je peux yaml. Il y a une fonction to_yaml qui va déverser mon objet sur yaml. Je cherche quelque chose dans le sens inverse. Par exemple, my_obj.from_yaml (yaml_stuff) et que les variables d'instance de mise à jour yaml soient passées.Comment puis-je mettre à jour un objet Ruby déjà instancié avec YAML?
Aurais-je besoin, dans ma fonction from_yaml, d'utiliser YAML :: load et de copier chaque variable d'instance? Y at-il une fonction que je peux utiliser pour copier rapidement ces variables sans trop taper si c'est le cas?
Est-ce que la bibliothèque yaml de Ruby a déjà quelque chose où je peux lui passer l'objet et le yaml et ça va faire ce que je veux?
édition pour plus de clarté
Ceci est un objet simple qui va stocker et charger YAML très simple types compatibles tels que les chaînes et les entiers.
Ce que je fini par faire
Bien que je répondu à cette question que je voulais ajouter ce que je fini par faire, mon patch singe objet
class Object
def from_yaml(yml)
if (yml.nil?)
return
end
yml.instance_variables.each do |iv|
if (self.instance_variable_defined?(iv))
self.instance_variable_set(iv, yml.instance_variable_get(iv))
end
end
end
end
Désolé si je n'étais pas clair. Les membres d'objet sont constitués de types très simples compatibles avec YAML. Je ne savais pas si cette fonctionnalité existait déjà dans la bibliothèque de ruby's yaml ou si je devais faire quelque chose de spécial. On dirait que j'ai besoin de faire quelque chose de spécial. Il se peut que je doive poster cette question sous un autre angle, mais y a-t-il un avantage à stocker les données d'instance dans un hachage et à utiliser method_missing pour mettre à jour les données? Ensuite, je peux juste yaml dans et hors du hachage. – Justin
J'aime ça. Je vous remercie! – Justin