2014-03-03 30 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