Как использовать Marshal?

Marshal используется, чтобы сохранить объект в файл или строку, а затем восстановить его. Объекты сохраняются следующим образом:

  Marshal.dump obj [, io ] [, lev]

io - это IO объект, открытый для чтения, lev обозначает уровень той глубины, на которую разыменовывается и сохраняется объект.

Если объект сохранен на указанный уровень глубины, но ссылки на объекты все еще присутствуют, dump сохраняет только ссылки на объекты, а не их самих. Это не очень хорошо, так как объекты, на которые сохраняются ссылки, не будут позже реконструированы. Если io опущен, объект возвращается в виде строки. Загрузить объекты назад можно следующим образом:

   obj = Marshal.load(io)

или

  obj = Marshal.load(str)

где io - это открытый для чтения IO объект, str - это строка в которой был сохранен объект.