Forum: Ruby inspecting cyclic structures

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
konsu (Guest)
on 2006-02-13 19:53
(Received via mailing list)
hello,

is there  a way to inspect an object only to a given depth to avoid
infinite
loops in case of referential loops? like irb does:

irb(main):001:0> a = Object.new
=> #<Object:0x2be6cd0>
irb(main):002:0> b = Object.new
=> #<Object:0x2be4900>
irb(main):003:0> a.instance_variable_set(:@b, b)
=> #<Object:0x2be4900>
irb(main):004:0> b.instance_variable_set(:@a, a)
=> #<Object:0x2be6cd0 @b=#<Object:0x2be4900 @a=#<Object:0x2be6cd0 ...>>>
irb(main):005:0> a.inspect
=> "#<Object:0x2be6cd0 @b=#<Object:0x2be4900 @a=#<Object:0x2be6cd0
...>>>"
irb(main):006:0>

thanks
konstantin
unknown (Guest)
on 2006-02-13 20:05
(Received via mailing list)
On Tue, 14 Feb 2006, konsu wrote:

> => #<Object:0x2be4900>
> irb(main):004:0> b.instance_variable_set(:@a, a)
> => #<Object:0x2be6cd0 @b=#<Object:0x2be4900 @a=#<Object:0x2be6cd0 ...>>>
> irb(main):005:0> a.inspect
> => "#<Object:0x2be6cd0 @b=#<Object:0x2be4900 @a=#<Object:0x2be6cd0 ...>>>"
> irb(main):006:0>
>
> thanks
> konstantin


   harp:~ > cat a.rb
   a = Object.new
   b = Object.new
   a.instance_variable_set(:@b, b)
   b.instance_variable_set(:@a, a)

   p a
   require "yaml" and y a
   require "pp" and pp a


   harp:~ > ruby a.rb
   #<Object:0xb75cdc64 @b=#<Object:0xb75cdc50 @a=#<Object:0xb75cdc64
...>>>
   --- &id001 !ruby/object
   b: !ruby/object
     a: *id001
   #<Object:0xb75cdc64 @b=#<Object:0xb75cdc50 @a=#<Object:0xb75cdc64
...>>>



hth.

-a
konsu (Guest)
on 2006-02-13 20:08
(Received via mailing list)
please disregard this, it seems to work outside irb too. in still
outputs
too much stuff in my case but it still does not loop forever.

konstantin


"konsu" <removed_email_address@domain.invalid> wrote in message
news:removed_email_address@domain.invalid...
This topic is locked and can not be replied to.