Sie können die irb-Registry für lokale Variablen immer löschen, indem Sie eine irb-Subshell aufrufen. Stellen Sie sich vor, wie Bash-Shells in Bezug auf nicht exportierte Umgebungsvariablen funktionieren. Da Sie den interaktiven Modus gewählt haben, sollte diese Lösung dafür geeignet sein.
Was Produktionscode betrifft, möchte ich lokale Variablen nicht als Teil einer Lösung definieren - Schlüssel-Hashes wären wahrscheinlich besser für diese Art von Szenario.
Hier ist, was ich meine:
$ irb
irb(main):001:0> a = "a"
=> "a"
irb(main):002:0> defined? a
=> "local-variable"
irb(main):003:0> irb # step into subshell with its own locals
irb#1(main):001:0> defined? a
=> nil
irb#1(main):002:0> a
NameError: undefined local variable or method `a' for main:Object
from /Users/dean/.irbrc:108:in `method_missing'
from (irb#1):2
irb#1(main):003:0> exit
=> #<IRB::Irb: @context=#<IRB::Context:0x1011b48b8>, @signal_status=:IN_EVAL, @scanner=#<RubyLex:0x1011b3df0>>
irb(main):004:0> a # now we're back and a exists again
=> "a"
hmm, nervig, dass es solche Methoden nicht gibt. Ich denke, ich kann mich vorerst an Instanzvariablen halten. – Peter
Diese Links sehen nicht mehr so aus, als würden sie an den richtigen Ort gehen. – jcollum
@jcollum danke. 'remove_instance_variable' und' remove_const' sind private Methoden und scheinen nicht mehr in der Dokumentation von ruby-doc.org enthalten zu sein. Ich habe die Antwort aktualisiert, um äquivalente Links zu apidock.com zu verwenden. – mikej