Tag: syck

为什么psych yaml解释器会在80个字符左右添加换行符?

自从ruby1.9.3以来,Psych是默认的yaml引擎 为什么,为什么心理在其输出中添加换行符? 请查看以下示例。 ruby -v # => ruby 1.9.3p374 (2013-01-15 revision 38858) [x86_64-linux] require ‘yaml’ “this absolutely normal sentence is more than eighty characters long because it IS”.to_yaml # => “— this absolutely normal sentence is more than eighty characters long because it\n IS\n…\n” YAML::ENGINE.yamler = ‘syck’ “this absolutely normal sentence is more than eighty […]

如何使用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我可以选择在我的Ruby脚本生命周期之后保持这个TCPServer活着并运行。 有什么想法我怎么能逃脱这个? 我保证成功重新加载以仔细检查任何套接字/内部对象的有效性,并且如果必须的话,只需重新初始化一个全新的对象。