Вам необходимо сериализовать объекты, прежде чем вы сможете сохранить их в файл и десериализовать их, чтобы получить их обратно. Как отметил Кори, широко используются 2 стандартные библиотеки сериализации: Marshal
и YAML
.
И Marshal
, и YAML
используют методы dump
и load
для сериализации и десериализации соответственно.
Вот как вы можете их использовать:
m = [
[
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]
],
[
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]
]
]
# Quick way of opening the file, writing it and closing it
File.open('/path/to/yaml.dump', 'w') { |f| f.write(YAML.dump(m)) }
File.open('/path/to/marshal.dump', 'wb') { |f| f.write(Marshal.dump(m)) }
# Now to read from file and de-serialize it:
YAML.load(File.read('/path/to/yaml.dump'))
Marshal.load(File.read('/path/to/marshal.dump'))
Вы должны быть осторожны с размером файла и другими особенностями, связанными с чтением / записью файла.
Больше информации, конечно, можно найти в документации API.