Siempre puede 'borrar' el registro de las variables locales de irb invocando una subshell irb. Piensa en cómo funcionan los shells Bash con respecto a las variables de entorno no exportado. Como mencionó el modo interactivo, esta solución debería funcionar para eso.
En cuanto al código de producción, no me gustaría definir las variables locales como parte de una solución: los hashes con clave probablemente serían mejores para ese tipo de escenario.
Esto es lo que quiero decir:
$ 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, molesto que no hay ningún método como ese. Supongo que puedo apegarme a las variables de instancia por ahora. – Peter
Esos enlaces ya no parecen estar yendo al lugar correcto. – jcollum
@jcollum gracias. 'remove_instance_variable' y' remove_const' son métodos privados, por lo que parece que ya no están incluidos en la documentación de ruby-doc.org. He actualizado la respuesta para usar enlaces equivalentes a apidock.com – mikej