Est-il possible de forcer Ruby à appeler une méthode initialize lors de l'utilisation de YAML.load_file? Je veux appeler la méthode afin de fournir des valeurs pour les variables d'instance que je ne sérialise pas. Je sais que je peux factoriser le code dans une méthode séparée et appeler cette méthode après avoir appelé YAML.load_file, mais je me demandais s'il y avait une façon plus élégante de gérer ce problème.Appel initialisation lors du chargement d'un objet sérialisé avec YAML
6
A
Répondre
3
Je ne pense pas que vous le pouvez. Puisque le code que vous allez ajouter est vraiment spécifique à la classe en cours de désérialisation, vous devriez envisager d'ajouter la fonctionnalité dans la classe. Par exemple, laissez-Foo
être la classe que vous voulez désérialiser, vous pouvez ajouter une méthode de classe tels que:
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")
Questions connexes
- 1. Problème lors de l'envoi d'un objet sérialisé sur tcpclient
- 2. Comment spécifier les valeurs par défaut lors du chargement de fichiers en utilisant yaml?
- 3. Objet avec initialisation paresseuse - ajout à Session ou Viewstate
- 4. Objet Javascript - 'Initialisation statique'
- 5. initialisation LINQ et objet
- 6. Sérialisation XML: objet non sérialisé
- 7. Erreur lors du chargement paresseux avec NHibernate
- 8. Réception d'une exception NoSuchMethodException lors du transfert d'un objet sérialisé de l'application Android vers une servlet
- 9. Envoyer un objet sérialisé via le socket
- 10. Yaml erreur de chargement dans Ruby
- 11. yui_editor non chargé lors du chargement du partiel via un appel ajax
- 12. Qu'est-ce qu'un objet "sérialisé" en programmation?
- 13. php Initialisation du tableau
- 14. Objet vers Sérialiseur YAML en C#
- 15. Appel du code .NET à partir d'IronPython, erreur lors du chargement de l'assembly log4net
- 16. Bitmap.Tag n'est pas sérialisé lors de l'utilisation avec WCF
- 17. Problème ContextLoaderListener lors du chargement du ressort
- 18. Erreur lors du chargement du package SSIS
- 19. Erreur lors du chargement dynamique mapi32.dll
- 20. Initialisation paresseuse du cache avec Spring IBatis
- 21. Comment effectuer un appel AJAX immédiatement lors du chargement d'un document
- 22. Erreur lors de la lecture de l'objet sérialisé? WP7
- 23. Bad RawFormat lors du chargement du fichier emf
- 24. Un programme de chargement d'appareils basé sur YAML pour Java?
- 25. Comment initialiser searchlogic sans initialisation
- 26. Problèmes lors du chargement d'un DataGridView avec une arrayList bidimensionnelle
- 27. Redimensionnement d'un fichier SWF lors du chargement avec SWFObject
- 28. Active Record sérialisé d'enregistrement perdre les codages de chaîne (problème probablement YAML), solutions de contournement?
- 29. iPhone UIActivityIndicatorView lors du chargement de UIViewController
- 30. C++ Initialisation du tableau
Pouvez-vous expliquer un peu plus sur ce que vous essayez de faire? Ma première tendance est de créer une classe qui enveloppe l'appel à load_file et fournit ensuite les valeurs qui n'existent pas dans le fichier de configuration. J'aimerais pouvoir fournir une solution plus complète. –