@ Ответ Squeegy уже говорит вам, что делать, но я думаю, что не менее важно понять, почему работает. И это на самом деле довольно просто: классы в Ruby не представляют собой ничего особенного. Это просто объекты, как и любой другой объект, который присваивается переменным, как и любая другая переменная. Точнее, они являются экземплярами класса Class
и обычно присваиваются константам (то есть переменным, имя которых начинается с заглавной буквы).
Итак, вы можете использовать псевдоним любого другого объекта для нескольких переменных:
a = ''
b = a
a << 'Hello'
c = b
b << ', World!'
puts c # => Hello, World!
Вы также можете использовать псевдонимы для нескольких переменных:
class Foo; end
bar = Foo
p bar.new # => #<Foo:0x1d9f220>
Если вы хотите переместить классы в пространство имен вместо простого наложения их на псевдонимы, вам также необходимо установить исходные переменные для другого объекта, например nil
, в дополнение к ответу @ Squeegy:
::A = nil
::B = nil