Ist es möglich, Ruby zu zwingen, eine Initialisierungsmethode aufzurufen, wenn YAML.load_file verwendet wird? Ich möchte die Methode aufrufen, um Werte für Instanzvariablen bereitzustellen, die ich nicht serialisiere. Ich weiß, dass ich den Code in eine separate Methode einteilen und diese Methode aufrufen kann, nachdem ich YAML.load_file aufgerufen habe, aber ich frage mich, ob es eine elegantere Art gibt, mit diesem Problem umzugehen.Aufruf initialisieren beim Laden eines mit YAML serialisierten Objekts
6
A
Antwort
3
Ich glaube nicht, dass Sie können. Da der Code, den Sie hinzufügen, wirklich spezifisch für die zu deserialisierende Klasse ist, sollten Sie das Feature in der Klasse hinzufügen. Nehmen wir zum Beispiel Foo
sein die Klasse, die Sie deserialisieren möchten, können Sie eine Klassenmethode hinzufügen, wie zum Beispiel:
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")
Verwandte Themen
- 1. Störungsfelder eines serialisierten Objekts in Java Zugriff
- 2. NPE beim Aufruf eines verspotteten Objekts (Mockito)
- 3. Initialisieren eines Objekts mit einem Block
- 4. Initialisieren der Auflistung beim Erstellen eines Objekts aus XMLSerializer
- 5. Aufruf meines Controllers mit mehreren Parametern einschließlich eines serialisierten Formulars
- 6. Initialisieren eines Double-Objekts mit einem primitiven Doppelwert
- 7. Java - einfache Möglichkeit, die Struktur eines serialisierten Objekts zu überprüfen?
- 8. Wie kann ich die serialVersionUID eines serialisierten Java-Objekts herausfinden?
- 9. Maximale Rekursionstiefe beim Aufruf eines Python-Objekts überschritten - Laufzeitfehler
- 10. Python: Maximale Rekursionstiefe überschritten beim Aufruf eines Python-Objekts beim Aufruf der Kopierfunktion
- 11. Initialisieren Sie die Attribute-Eigenschaft eines WebControl-Objekts mit Sammlungsinitialisierer
- 12. Beim "Eltern" eines datengebundenen Objekts?
- 13. Segmentierungsfehler beim Laden eines GeoJsons
- 14. Aufruf eines KeyDown-Ereignisses beim Laden des Formulars
- 15. AttributeError beim Entpacken eines Objekts
- 16. Fehler beim Überschreiben von jwt_response_payload_handler zum Hinzufügen eines serialisierten Benutzers
- 17. Joomla 3.x laden Formular mit serialisierten Daten
- 18. Initialisieren eines View-Controllers
- 19. Fehler beim Initialisieren eines 2D-Arrays
- 20. Bedeutung zu erklären, instanziiert wird, Initialisieren und Zuweisen eines Objekts
- 21. Endlosschleife beim Aufruf eines HttpHandler
- 22. StackOverflowError beim Serialisieren eines Objekts in Java
- 23. Zugriff auf Eigenschaftenname beim Durchlaufen eines Objekts
- 24. Hibernate - Laden eines Objekts basierend auf dem Feld eines Mitgliedsobjekts
- 25. Warum unique_ptr mit einem make_unique-Aufruf initialisieren?
- 26. Boost Serialisierung speichern auf mehrere Archivtypen und verhindern Konstruktion eines neuen Objekts beim Laden mit Zeiger
- 27. Überspringen: Berührungen beim Speichern eines ActiveRecord-Objekts
- 28. Definieren von Memberfuntion beim Konstruieren eines Objekts
- 29. IE8 Fehler beim Definieren eines Javascript-Objekts?
- 30. Wie after_save Arbeit beim Speichern eines Objekts
Könnten Sie ein bisschen mehr über erklären, was Sie zu tun versuchen? Meine erste Neigung besteht darin, eine Klasse zu erstellen, die den Aufruf von load_file umschließt und dann die Werte bereitstellt, die in der Konfigurationsdatei nicht vorhanden sind. Ich würde gerne eine umfassendere Lösung anbieten können. –