Как сериализовать объект, используя TCPServer внутри?
Стремясь ускорить частые повторяющиеся запуски определенного сценария в моей цепочке, я начал сериализацию на пользовательские объекты диска, которые в противном случае для создания в совокупности занимают слишком много времени.
Использование встроенного Yaml и / или Marshal.
Yaml хорошо сериализуется в на первый взгляд здоровый текстовый файл, но при попытке десериализации выдает следующую ошибку:
b2 = YAML::load(File.open("browserObj.yaml", 'r'))
Syck::TypeError: Invalid Regular expression: "/\\A\\s*\n ([a-zA-Z][-+.a-zA-Z\\d]*): ...and many more strange lines
Однако даже пытается сохранить в двоичном файле с помощью ошибок Marshal:
puts File.open("browserObj.bin", 'w').write Marshal::dump($browser)
TypeError: can't dump TCPServer
# Marshal::dump($browser, File.open("browserObj.bin", 'wb')) # same error
Намеренно не делает $browser.close
в конце у меня есть возможность сохранить этот TCPServer живым и работающим после жизненного цикла моего сценария Ruby.
Есть мысли, как мне с этим сойти? Я обещаю после успешной перезагрузки перепроверить валидность любых сокетов / внутренних объектов и просто заново инициализировать целый новый объект, если потребуется.