13.2. Serializacja danych z wykorzystaniem modułu Marshal

Problem

Chcemy poddać serializacji strukturę danych i zapisać ją na dysk szybciej, niż można to zrobić za pomocą biblioteki YAML. Nie interesuje nas czytelność struktury danych po serializacji ani możliwość przenoszenia jej do innych języków programowania.

Rozwiązanie

Można skorzystać z wbudowanego w język Ruby modułu Marshal. Jego działanie jest podobne do biblioteki YAML, lecz znacznie efektywniejsze. Metoda Marshal.dump przekształca strukturę danych na ciąg binarny, który można zapisać na dysku, a później odtworzyć za pomocą metody Marshal.load.

Marshal.dump(10) # => "\004\010i\017" Marshal.dump('dziesięć') # =>"\004\b\"\rdziesięć" Marshal.dump('10') # => "\004\b\"\a10" Marshal.load(Marshal.dump(%w{Podciągnij ...

Get Ruby. Receptury now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.