在Ruby中是否有相同的to_yaml_properties用于inspect?

时间:2011-03-01 04:11:38

标签: ruby inspect

Object#to_yaml_properties是一种方法,可用于列出要序列化为YAML的实例变量,而无需重新实现整个序列化过程。如果要排除某些实例变量,可以使用super,然后过滤掉您不想要的变量。

是否有一个等效方法允许您在调用Object#inspect时仅列出某些变量,或者我是否必须重新实现整个方法?

1 个答案:

答案 0 :(得分:1)

vanilla Ruby中没有这样的机制。

从好的方面来说,您可以实现它,然后在重新定义MyClass#inspect时使用它。您不必为每个类完成所有工作,只需创建一个允许您设置检查的类级方法。

或者您可以添加自己的Object#limited_inspect并重新定义Kernel#p(或添加您自己的快捷方式)以使用所有实例变量减去可能被排除的任何变量。