Я не верю, что возможно "сбросить" глобальную переменную. Лучше всего установить значение переменной nil
.
Обычно, когда вы пытаетесь использовать переменную, которую вы еще не определили, Ruby выдает ошибку.
irb > "The following variable has not yet been defined: #{a}"
irb > NameError: undefined local variable or method `a' for main:Object
Это поведение на самом деле отличается от глобальных переменных. Любая попытка вызвать глобальную переменную, которая не была определена, вернет nil
.
irb > "The following global variable has not yet been defined: #{$a}"
# => The following global variable has not yet been defined:
irb > $a.class
# => NilClass
Таким образом, установка вашей глобальной переменной равной nil должна вести себя точно так же, как вы ожидаете от ее «отмены».