Vous pouvez toujours 'effacer' le registre de variables locales d'irb en invoquant un sous-shell IRB. Pensez au fonctionnement des shells Bash par rapport aux variables d'environnement non exportées. Depuis que vous avez mis en mode interactif, cette solution devrait fonctionner pour cela.
En ce qui concerne le code de production, je ne voudrais pas annuler la définition des variables locales dans le cadre d'une solution - les hachages à clé seraient probablement meilleurs pour ce type de scénario.
Voici ce que je veux dire:
$ 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, ennuyeux qu'il n'y a pas de méthodes comme ça. Je suppose que je peux m'en tenir aux variables d'instance pour le moment. – Peter
Ces liens ne semblent plus aller au bon endroit. – jcollum
@jcollum merci. 'remove_instance_variable' et' remove_const' sont des méthodes privées donc ne semblent plus être inclus dans la documentation sur ruby-doc.org. J'ai mis à jour la réponse pour utiliser des liens équivalents à apidock.com – mikej