Я хочу добавить пространство имен к определенному классу / модулю, но не хочу вводить длинный формат
class A::B::C::D::<ClassName>
ИЛИ
module A
module B
module C
module D
class ClassName
end
end
end
end
end
Другими словами, я просто хочу определить класс class ClassName
, а затем мне нужен способ отправить этот класс для жизни под пространством имен A::B::C::D
, чтобы я мог написать связкукода примерно так:
# File Name: a/b/c/d/some_class.rb
class SomeClass
include SomeModule
# class content
end
# File Name: a/b/c/d/some_module.rb
module SomeModule
# module content
end
Поскольку в моей кодовой базе слишком много модулей, я не хочу каждый раз вводить пространство имен с префиксами.Но я хочу сказать что-то вроде этого в конце:
SomeClass.add_to_namespace(A::B::C::D)
SomeModule.add_to_namespace(A::B::C::D)
Важно: Это также должно повлиять на поиск в пространстве имен классов, чтобы Ruby / Rails не жаловался так:
expected a/b/c/d/some_class.rb to define SomeClass
Вопрос: будет ли include
- мой класс в пространстве имен иметь такой же эффект?
module A::B::C::D
include ClassName
end