红宝石中的深度限制pp或to_yaml

时间:2011-01-05 14:05:25

标签: ruby to-yaml

我可以在Ruby中限制PP.pp或to_yaml的递归深度吗? 如果没有,我可以使用其他功能吗?

1 个答案:

答案 0 :(得分:0)

据我所知,没有简单的方法可以做到这一点。几乎每个Ruby对象实现的#inspect方法都不受深度限制。

您必须自己实现,例如,您可以构建一个递归方法,该方法接受一个对象和一个Integer值来表示当前深度。主要问题是,您需要以不同方式处理每个预期类的对象的输出,以模拟其特定的#inspect输出,因为您无法使用其原始的#inspect方法。