Ich brauche eine kleine unstrukturierte Datenbank für meine Ruby-Skripte. Nicht Sqlite, etwas mehr wie ein persistentes Hashtabellen würde perfekt funktionieren, solange es grundlegende Ruby-Strukturen (Arrays, Strings, Hashes usw. - alle serialisierbar) speichern kann und nicht beschädigt wird, wenn Ruby-Skripte abstürzen.
Ich weiß, dass es für Perl mit Tie :: Hash viele Lösungen wie diese gibt, also gibt es wahrscheinlich ein solches Juwel für Ruby. Welches Juwel wäre das?
EDIT: Soweit ich das beurteilen kann, basieren PStore- und yaml-Lösungen auf dem Lesen, dem Unmarshalling, dem Remarshalen und dem Schreiben der gesamten Datenbank bei jeder Änderung. Das erfordert nicht nur alles, um in den Speicher zu passen, es ist O (n ^ 2). Also scheint keiner von ihnen eine besonders gute Lösung zu sein.
Vielleicht FSDB (Dateisystem-Datenbank) wird Ihren Bedürfnissen entsprechen.
%Vor%FSDB ist eine Dateisystemdatenbank. FSDB bietet eine threadsichere, prozesssichere Datenbankklasse, die das native Dateisystem als Backend verwendet und mehrere Dateiformate und Serialisierungsmethoden zulässt. Benutzer greifen auf Objekte bezogen auf ihre Pfade relativ zum Basisverzeichnis der Datenbank zu. Es ist sehr leicht (der Zustand einer Datenbank ist im Wesentlichen nur eine Pfadzeichenfolge und die Codegröße ist sehr klein, unter 1K Zeilen, alles Ruby).
Hier ist ein Beispiel aus der Dokumentation:
%Vor%Hast du gdbm ausprobiert? Es kommt mit Ruby stdlib, ist wirklich einfach und viel schneller als PStore oder YAML.
Wenn die Daten klein genug sind, um während der Ausführung des Programms im Speicher zu bleiben, und serialisieren / deserialisieren beim Beenden / Starten, könnten Sie YAML ausprobieren. Es kommt standardmäßig mit Ruby und kann jede Art von Objekt speichern.
%Vor%Gibt dir
%Vor%laden, einfach tun:
%Vor%Tags und Links ruby