2014-03-03 24 views
2

在Ruby中,有没有办法从对象的'.inspect'输出中恢复对象?Ruby:从.inspect输出中恢复对象

用例可能是:我在生产日志中输入了'.inspect'输出,我希望能够恢复该对象进行测试,因为该对象很难在生产环境之外创建。

+1

你不能那样做。类的'inspect'输出,就像'to_s'输出一样,是开发者定义的。对于一个简单的类来说,它可能是所有实例变量,其中包含表示实例变量名称的东西。对于一个有很多变量的大对象来说,它可能是一个非常有用的区分输出,用来区分一个实例和另一个实例。这只取决于开发人员。你可以重写'inspect' /'to_s'方法来代表更多的代码,但是我建议增加序列化JSON的能力或者使用Marshall。 –

+0

谢谢@theTinMan征求意见 – gifkins

回答

1

你可能想看看Marshal module。但请知道,您不能只从生产日志中的条目中'还原'对象...

编组库将Ruby对象的集合转换为字节流,从而允许它们存储在当前活动脚本之外。随后可以读取该数据并重建原始对象。

+0

感谢您的意见,非常感谢。 – gifkins