2009-07-22 67 views
1

我想对某个对象运行检查,但不幸的是,它要么链接到一些非常大的对象,要么有循环引用。这导致了许多页面的输出。使用有限递归进行检查

是否有某种方法来限制检查允许执行的递归级别?

回答

0

不,您可能希望使用两个或两个或多个prettyprint模块来创建“不同”可视化(需要'pp'; pp对象)或自己写一些东西。编写一个通用的自卸车是相当困难的,因为每个人都有不同的需求(转储二进制blob转储字符串达到哪个长度?转储带周期的图表转储到哪个级别...)。

0

我想你将不得不改变你的对象#inspect的行为。如果你了解你的对象,那应该不会太难:

class Array 
    def inspect 
    puts "This is an array, size=#{size}" 
    end 
end 

a = [1,2,3] 

puts a.inspect #=> This is an array, size=3 
+0

这是一个外部库,所以我根本不知道发生了什么。 – viraptor 2009-07-22 13:08:32