Para su información, aquí hay un "camino hacky". Este es mi (re) puesta en práctica de ppp.rb conocido:.
#!/usr/bin/ruby
#
# better ppp.rb
#
require 'continuation' if RUBY_VERSION >= '1.9.0'
def ppp(*sym)
cc = nil
ok = false
set_trace_func lambda {|event, file, lineno, id, binding, klass|
if ok
set_trace_func nil
cc.call(binding)
else
ok = event == "return"
end
}
return unless bb = callcc{|c| cc = c; nil }
sym.map{|s| v = eval(s.to_s, bb); puts "#{s.inspect} = #{v}"; v }
end
a = 1
s = "hello"
ppp :a, :s
exit 0
Esta falla en la actualidad con 1,9 [012] debido a un error en set_trace_func de ruby.
aquí hay un ejemplo de la forma frágil de usar set_trace_func para hacerlo: http://stackoverflow.com/questions/1314592/how-can-i-get-the-binding-from-methodmissing/1315612#1315612 – rampion
Debe incluir una exención de responsabilidad : Por favor, no hagas esto a menos que * en realidad * lo estés usando para la depuración de algún tipo. – tmandry