diff options
| author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-03-09 14:56:16 +0000 |
|---|---|---|
| committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-03-09 14:56:16 +0000 |
| commit | de7dc8d88d24a28d1e2bf0f0a27b09d5f3ef5f34 (patch) | |
| tree | 27056ca0acaf2ade90330c290a9fd247be468445 /lib | |
| parent | 3e8aeb15e2fb011d6bb5280c1e8135a749c8dd6d (diff) | |
| download | ruby-de7dc8d88d24a28d1e2bf0f0a27b09d5f3ef5f34.tar.gz ruby-de7dc8d88d24a28d1e2bf0f0a27b09d5f3ef5f34.tar.xz ruby-de7dc8d88d24a28d1e2bf0f0a27b09d5f3ef5f34.zip | |
* lib/pp.rb (PP::PPMethods#guard_inspect_key): support
__recursive_key__. [ruby-dev:25821]
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@8132 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/pp.rb | 24 |
1 files changed, 14 insertions, 10 deletions
@@ -91,31 +91,35 @@ class PP < PrettyPrint end module PPMethods - InspectKey = :__inspect_key__ - def guard_inspect_key - if Thread.current[InspectKey] == nil - Thread.current[InspectKey] = {inspect: []} + if Thread.current[:__recursive_key__] == nil + Thread.current[:__recursive_key__] = {} + end + + if Thread.current[:__recursive_key__][:inspect] == nil + Thread.current[:__recursive_key__][:inspect] = [] end - save = Thread.current[InspectKey][:inspect] + save = Thread.current[:__recursive_key__][:inspect] begin - Thread.current[InspectKey][:inspect] = [] + Thread.current[:__recursive_key__][:inspect] = [] yield ensure - Thread.current[InspectKey][:inspect] = save + Thread.current[:__recursive_key__][:inspect] = save end end def check_inspect_key(id) - Thread.current[InspectKey][:inspect].include?(id) + Thread.current[:__recursive_key__] && + Thread.current[:__recursive_key__][:inspect] && + Thread.current[:__recursive_key__][:inspect].include?(id) end def push_inspect_key(id) - Thread.current[InspectKey][:inspect] << id + Thread.current[:__recursive_key__][:inspect] << id end def pop_inspect_key - Thread.current[InspectKey][:inspect].pop + Thread.current[:__recursive_key__][:inspect].pop end # Adds +obj+ to the pretty printing buffer |
