在Ruby中编组对象之前修改对象

时间:2016-08-01 18:14:12

标签: ruby serialization marshalling dump superclass

我有一个包含敏感数据的对象,我希望在没有敏感数据的情况下使用<div class="slider-box-1"> <div class="swipe-box-1"></div> <div class="space-1"></div> <div>the version type</div> </div> 进行编组。

我希望能够说:

Marshal

但这会产生一种“超级方法”。错误。在使用默认实现时,有没有办法让我的对象按照我想要的方式运行def _dump(*args) # Clean-up sensitive data super end

我希望Marshal.dump开箱即用,而不要求API使用者记住调用其他方法。

1 个答案:

答案 0 :(得分:1)

_dump可能没有超类方法。如果在你的对象上定义它就被调用。如果没有,则使用默认处理程序。

您可能希望clone您的对象并移除敏感字段,将其作为Hash返回到_dump函数中,然后在_load方法中撤消该字段。

您还可以阅读the documentation on Marshal,其中介绍了推荐的方法。