From: Robert Klemme Date: 2005-12-28T06:37:54+09:00 Subject: Re: Variable Dump Dan Smorey Jr. wrote: > I'd like to know how to grab a dump of all variable associated with a > script. Here is a test script I am using... > > #!/usr/bin/env ruby > > class Binding > def info_locals() > vars = eval("local_variables", self) > vars.each { |v| puts %(#{v} --> #{eval(v, self).inspect}) } > end > end > > def foo_def > inside_foo_def = "hello there" > binding.info_locals > end > > foo = 'hello' > bar = "goodbye" > array = [ 'one', 'two' ] > > foo_def() > > I get this output... > > inside_foo_def --> "hello there" > > That's the problem. I do not get all variables, just the variable in > the def foo_def scope. I'd like to be able to grab foo, bar, and > array also, much like this... > > inside_foo_def --> "hello there" > foo --> "hello" > bar --> "bar" > array --> ['one', 'two'] > > Thanks in advance. You would have to walk up the call stack to get locals of surrounding environments. Kernel.set_trace_func may help here. Kind regards robert