2009-07-22 16 views
1

Ich möchte inspizieren auf ein Objekt, aber leider ist es entweder Verknüpfung mit einigen wirklich großen Objekten, oder hat eine zirkuläre Referenz. Dies führt zu vielen Ausgabeseiten.Untersuchen mit eingeschränkter Rekursion

Gibt es eine Möglichkeit, das Ausmaß der Rekursion zu begrenzen, die inspect erlaubt ist?

Antwort

0

Nein, möchten Sie vielleicht das Prettyprint-Modul für eine "andere" Visualisierung verwenden (erfordern Sie pp; pp-Objekt) oder schreiben Sie selbst etwas. Einen generischen Dumper zu schreiben ist ziemlich schwierig, da jeder unterschiedliche Bedürfnisse hat (dump binäre Blobs? Dump-Strings bis zu welcher Länge? Dump-Graphen mit Zyklen? Dump bis zu welcher Ebene? ...).

0

Ich denke, dass Sie das Verhalten von #inspect für Ihr Objekt ändern müssen. Wenn Sie Ihre Objekte verstehen, sollte es nicht zu schwer sein:

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

Es ist eine externe Bibliothek, also weiß ich nicht, was überhaupt los ist. – viraptor